SQL Like and like


SQL Like and like

是否可以在一个查询中将多个SQL LIKE通配符串在一起?

LIKE '% aaaa %' AND LIKE '% bbbb %'

目的是找到包含两个通配符但没有特定顺序的记录。

正确的SQL语法是:

field LIKE '% aaaa %' AND field LIKE '% bbbb %'

是的,可以,但语法是:

Field LIKE '%aaa%' AND field LIKE '%bbb%'

当您将此语句与变量一起使用时,这很有用。

SELECT * 
FROM `tableName`
WHERE `colName` LIKE CONCAT('%', 'aaaa', '%') AND -- if aaaa is direct Text
      `colName` LIKE CONCAT('%', 'bbbb', '%')
SELECT * 
FROM `tableName`
WHERE `colName` LIKE CONCAT('%', aaaa, '%') AND -- if aaaa is variable
      `colName` LIKE CONCAT('%', bbbb, '%')

是的,但请记住LIKE是一个类似于其他语言中的==>的运算符。你仍然需要指定等式的另一边:

SELECT * FROM myTable
WHERE myField LIKE '%aaaa%' AND myField LIKE '%bbbb%'

可以将任意数量的条件串在一起。然而,谨慎的做法是使用括号对子句进行分组,以消除任何歧义:

SELECT *
  FROM tableName
 WHERE (columnOne LIKE '%pattern%')
   AND (columnTwo LIKE '%other%')