触摸多个关键字的mysql搜索

时间:2011-12-23 11:46:30

标签: php mysql sql

$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打开,我知道有结果的事实。 感谢任何帮助。谢谢你

4 个答案:

答案 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%'