mysql substr不像php一样工作

时间:2013-04-09 17:26:21

标签: mysql substr

请在使用查询时帮我解决查询 - 我只想减去几个字符,然后使用%找到匹配的LIKE:

select * from `providers` WHERE `name` LIKE SUBSTR('telin',1,4)%

请让我知道我做错了什么,非常感谢任何帮助!

1 个答案:

答案 0 :(得分:3)

假设telin是列名而不是文字字符串,则应在反引号中引用它。如果它是文字字符串,那么显然不需要从中提取子字符串。但我怀疑,这是在回显完整查询后粘贴在这里的PHP变量的结果,然后它是正确的单引号。

无论如何,您需要通过SUBSTR()'%'结果连接到CONCAT()

SELECT * FROM `providers` WHERE `name` LIKE CONCAT(SUBSTR(`telin`,1,4), '%');

但更好的方法是使用LEFT()来比较每个字符的前4个字符:

SELECT * FROM `providers` WHERE LEFT(`name`, 4) = LEFT(`telin`,4);