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