我有这个变量来自POST命令[通过SESSION] - > $ ark = 123456-78
我想在之前保留evey;" - "所以123456进行我的研究。
我认为使用Subtring会起作用所以我试过这个:
这是我的要求:
$req = "SELECT COUNT(`Home`) FROM `users` WHERE `Home` LIKE('$ark')";
我尝试了没有任何疑问结果:
$req = "SELECT COUNT(`Home`) FROM `users` WHERE `Home` LIKE FLOOR('$ark')";
和
$req = "SELECT COUNT(`Home`) FROM `users` WHERE `Home` LIKE SUBSTRING('$ark',6)"
我知道哪里弄错了?
编辑:最后我找到了使用SUBSTRING_INDEX()
的解决方案$req = "SELECT COUNT(`Home`)FROM `users` WHERE `Home` LIKE SUBSTRING_INDEX('%$ark%','-','1')";
谢谢大家的帮助 Rflow
答案 0 :(得分:2)
如果LIKE子句没有通配符,它就像操作符一样工作
所以当你尝试时
where home LIKE SUBSTRING('$ark',6)
,只不过是和
where home = '123456'
这在你的情况下是不正确的。
因此,您必须使用通配符来匹配您的数据
where home LIKE concat('%', SUBSTRING('$ark',6), '%')
(如果你知道123456不介于两者之间,你可以先跳过%),这等于
where home LIKE '%123456%'
答案 1 :(得分:1)
您需要%
作为通配符
SELECT COUNT(`Home`)
FROM `users`
WHERE `Home` LIKE concat('%', SUBSTRING('$ark',6), '%')
答案 2 :(得分:1)
你可以使用concat来构建与wildchar一样的正确
$req = "SELECT COUNT(`Home`) FROM `users` WHERE `Home` LIKE concat('%', '$ark' , '%')";
答案 3 :(得分:1)
请尝试这个。希望它能起作用。
$req = "SELECT COUNT(`Home`) FROM `users` WHERE `Home` LIKE concat('%', SUBSTRING('$ark',6), '%')";