我有这个mysql查询,它搜索特定的单词。例如,让我们搜索Killzone Shadow Fall(存储在变量中):
select * from games where title like 'Killzone Shadow Fall'
它返回空。虽然此条目在数据库中作为“杀戮地带:阴影堕落”
存在为了返回“杀戮地带:阴影堕落”应该做些什么?当有人搜索“Killzone Shadow Fall'
”时答案 0 :(得分:0)
你不需要逃避冒号,尝试改为:
select * from games where title like 'Killzone%'
这将返回title
字段值以Killzone
开头的表中的所有记录
答案 1 :(得分:0)
LIKE中的_
字符仅替换字符串中的1个字符:
select * from games where title like 'Killzone_ Shadow Fall'
但最好使用%
来匹配您的搜索范围。
答案 2 :(得分:0)
我建议更换" "与%。
$searchTerm = "Killzone Shadow Fall';
$query = 'SELECT * FROM games WHERE title LIKE "'.str_replace(' ','%',$searchTerm).'"';