【问题标题】:MySQL QUERY "LIKE" returns nothingMySQL QUERY "LIKE" 什么都不返回
【发布时间】:2013-01-23 04:50:21
【问题描述】:

我使用 MySQL 版本 5.0.51a 和 PHP 来访问数据库,当它应该返回至少 2 行匹配 LIKE 条件时,这个查询什么也不返回。

$result = mysql_query("SELECT * FROM user WHERE name LIKE '%".$search."%'OR email LIKE    '%".$search."%' ORDER BY ".$order, $con);

$search 变量是 'Name',

ORDER、$order 或 $con 没有问题,我已经尝试过了,并且有 2 行名称为“Name”,但不知何故它找不到这些行并且什么也不返回。

有人知道问题出在哪里吗?

【问题讨论】:

  • 你的 $search 变量合适吗??
  • 也回显您的 $order
  • 你试过没有%操作符
  • echo "SELECT * FROM user WHERE name LIKE '%".$search."%' OR email LIKE '%".$search."%' ORDER BY ".$order"; echo your在这里查询 ans print 我认为你的变量有问题

标签: php mysql select sql-like


【解决方案1】:

尝试删除双逗号

$result = mysql_query("
                    SELECT 
                        * 
                    FROM user 
                    WHERE name LIKE '%{$search}%' OR email LIKE '%{$search}%' 
                    ORDER BY ".$order, $con);

【讨论】:

    【解决方案2】:

    主要是其他人指出的语法,这里是另一种方式:

    $result = mysql_query(" SELECT * FROM user 
    WHERE '%{$search}%' IN (name, email )
     ORDER BY ".$order.','. $con)
    ;
    

    【讨论】:

      【解决方案3】:

      请试试这个查询:

      $result = mysql_query("SELECT * FROM user WHERE name LIKE '%".$search."%'
      OR email LIKE '%".$search."%' 
      ORDER BY ".$order.','.$con);
      

      【讨论】:

      • @neeraj 看来您没有看到关闭 (','),是的,我只是在连接字符串。
      • 有。'逗号之前。但是你的实际字符串是用双引号 ""
      猜你喜欢
      • 2021-12-29
      • 2017-04-10
      • 2018-09-10
      • 1970-01-01
      • 1970-01-01
      • 2013-02-17
      • 2012-06-18
      • 2017-02-14
      • 2013-10-25
      相关资源
      最近更新 更多