【问题标题】:Concat with two LIKEs MYSQLConcat 与两个 LIKE MYSQL
【发布时间】:2018-07-23 15:54:49
【问题描述】:

我想在我的表 catalog_form 中搜索多个字段。使用 Concat 和 LIKES(我使用 foreach 循环)

我错过了什么?感谢您的所有帮助。

SELECT * 
FROM catalog_form 
WHERE CONCAT(image, acc_no, cat_no, art_type, title, mat_tech
            , acquired_by, dimensions, maker_pub, place_origin
             , location, description, encoded_by) LIKE '%maria%' 
             OR LIKE '%great%' 
ORDER BY id DESC LIMIT 0, 10

【问题讨论】:

  • 你有什么问题?有什么错误吗?您发布的内容应该如图所示。
  • “我错过了什么?”问题缺少表结构、示例数据、预期输出(stackoverflow.com/help/mcve)..

标签: php mysql concat


【解决方案1】:

你应该重复 OR 子句的 concat 值

SELECT * 
FROM catalog_form 
WHERE CONCAT(image, acc_no, cat_no, art_type, title, mat_tech
            , acquired_by, dimensions, maker_pub, place_origin
             , location, description, encoded_by) LIKE '%maria%' 
OR 
      CONCAT(image, acc_no, cat_no, art_type, title, mat_tech
            , acquired_by, dimensions, maker_pub, place_origin
             , location, description, encoded_by) 
             LIKE '%great%' 
ORDER BY id DESC LIMIT 0, 10

【讨论】:

  • 我收到一个错误:“mysqli_num_rows() 期望参数 1 是 mysqli_result,给定布尔值...”如果我在搜索栏中输入了两个字符串,即单词 GREAT 和 MARIA。并且单个字符串没有错误,无论是 GREAT 还是 MARIA。谢谢
  • 代码似乎正确尝试在 sql 命令 env 或 sql IDE 中执行代码......你确定你连接到 db 吗??
  • 我的代码中没有 A ORDER BY .. 检查你是否有不正确的 A
【解决方案2】:

我能够解决这个问题,我只是将整个 CONCAT 放在第二个 LIKE 之前。谢谢你的时间!!!

【讨论】:

    猜你喜欢
    • 2018-07-22
    • 2016-11-22
    • 2015-11-17
    • 2012-05-25
    • 2015-01-21
    • 2013-05-16
    • 2012-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多