$sql ="
SELECT * FROM table
WHERE $email_filter lower(table.synopsis) like '% $search_word_fix %'
OR lower(table.sp_name) like '% $search_word_fix %'
GROUP by table.sp_name
ORDER BY table.grade DESC
";
$re=mysql_query($sql);
所以我有这个简单的SQL查询,如果我搜索2个单词,例如:Hello World 它返回单词的结果:hello。和结果这个词:世界 我试图让它只返回“你好的话” 如果我使用:where table.field ='$ keyword' 我明白了:没有结果。我有phpmyadmin打开,我知道有结果的事实。 感谢任何帮助。谢谢你
答案 0 :(得分:0)
更改LIKE for =,=强制该词绝对
答案 1 :(得分:0)
尝试:
$sql ="
SELECT * FROM table
WHERE $email_filter lower(table.synopsis) REGEXP '[[:<:]]$search_word_fix[[:>:]]' = 1
OR lower(table.sp_name) REGEXP '[[:<:]]$search_word_fix[[:>:]]' = 1
GROUP by table.sp_name
ORDER BY table.grade DESC
";
希望有所帮助
答案 2 :(得分:0)
尝试删除该%符号。所以类似的查询看起来像
like '$search_word_fix'
答案 3 :(得分:0)
WHERE table.field LIKE '%Hello world%'
或
WHERE table.field LIKE '%Hello%world%'