在mysql LIKE查询中转义冒号

时间:2014-07-06 03:15:47

标签: php mysql

我有这个mysql查询,它搜索特定的单词。例如,让我们搜索Killzone Shadow Fall(存储在变量中):

select * from games where title like 'Killzone Shadow Fall'

它返回空。虽然此条目在数据库中作为“杀戮地带:阴影堕落”

存在

为了返回“杀戮地带:阴影堕落”应该做些什么?当有人搜索“Killzone Shadow Fall'

”时

3 个答案:

答案 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).'"';