即使where子句mathches,sql返回0行

时间:2016-05-01 20:19:33

标签: php mysql sql

我正在尝试执行

  SELECT * FROM `product_laptop` WHERE name = "Acer  Sdfsdf"

MySQL返回一个空结果集(即零行)。 (查询耗时0.0010秒。)

即使有一个名为Acer Sdfsdf`的条目 和name也被定义为唯一键。 Other name data works fine

2 个答案:

答案 0 :(得分:2)

也许您应该尝试like来获取正确的数据:

SELECT * FROM `product_laptop` WHERE name LIKE "Acer%"

这会满足您的需求吗?

答案 1 :(得分:1)

=需要完全匹配,使用带有like通配符的%会为您提供所需的结果。这虽然不符合确切的记录,但会允许各种变化。

SELECT * FROM `product_laptop` WHERE name like "Acer%Sdfsdf"
  

使用LIKE,您可以在模式中使用以下两个通配符:

     

匹配任意数量的字符,即使是零字符。

     

_ 只匹配一个字符。

http://dev.mysql.com/doc/refman/5.7/en/string-comparison-functions.html

您可以使用:

$name = preg_replace('/\s+/', '%', trim($name));

将所有空格转换为通配符。

相关问题