当使用Like“ABC%”构造时,MySQL返回空结果

时间:2015-07-01 16:31:33

标签: php mysql

我用 MySQL 5.1.4,带有utf8_general_ci

使用查询

时,我得到了正确的答案
SELECT code, searchString FROM places WHERE searchString LIKE "%45%" LIMIT 15

SELECT code, searchString FROM places WHERE searchString LIKE "%km" LIMIT 15

但是当我使用查询时

SELECT code, searchString FROM places WHERE searchString LIKE "45%" LIMIT 15

我有来自mysql的回复:MySQL返回一个空的结果集。

我的表包含带有前导符号“45xxx”

的值
"43014000" "745 km"
"50022000" "Base N 45"
"54008000" "45 km"

我如何解决这个问题?

更新:p.s。最初由于从外部文件导入错误而导致问题

2 个答案:

答案 0 :(得分:1)

当您运行选择查询时,该列中可能存在一些未显示的前导空格,我之前看到过这样的问题。

作为解决方法,您可以TRIM()列,这将删除前导空格,然后进行搜索:

SELECT code, searchString
FROM myTable
WHERE TRIM(searchString) LIKE '45%'
LIMIT 15;

答案 1 :(得分:-1)

问题在于解决

SELECT code, searchString FROM places WHERE searchString LIKE "_45%" LIMIT 15

返回正确的结果