【问题标题】:SQL Like and likeSQL 点赞
【发布时间】:2012-01-31 00:23:25
【问题描述】:

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

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

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

【问题讨论】:

  • "SQL 喜欢和喜欢"?烦人的问题标题。不是吗?

标签: php sql sql-like


【解决方案1】:

正确的 SQL 语法是:

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

【讨论】:

    【解决方案2】:

    是的,可以,但是语法是:

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

    【讨论】:

      【解决方案3】:

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

      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, '%')
      

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          【解决方案5】:

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2017-08-31
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-10-07
            • 1970-01-01
            相关资源
            最近更新 更多