请帮助我在使用查询时解决我的查询 - 我只想减去几个字符,然后使用 % 来查找匹配的 LIKE:
select * from `providers` WHERE `name` LIKE SUBSTR('telin',1,4)%
请让我知道我做错了什么,非常感谢任何帮助!
假设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);