0

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

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

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

4

1 回答 1

3

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

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

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

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

SELECT * FROM `providers` WHERE LEFT(`name`, 4) = LEFT(`telin`,4);
于 2013-04-09T17:28:04.570 回答