不喜欢MySQL select语句没有返回正确的结果

时间:2015-11-25 20:46:32

标签: mysql

$query = "
    SELECT distinct count(*) as num 
    FROM table1 ge 
    INNER JOIN table 2 ad 
    ON ge.ID = ad.ID 
    WHERE ge.ID = ad.ID AND ge.field LIKE '".mysql_real_escape_string($_REQUEST['search'])."%' 
    AND ge.field not like '%word%' 
    order by ge.field ASC"

或者

$query = "
    SELECT * 
    FROM table1 ge 
    INNER JOIN table 2 ad 
    ON ge.ID = ad.ID 
    WHERE ge.ID = ad.ID AND ge.field LIKE '".mysql_real_escape_string($_REQUEST['search'])."%' 
    AND ge.field not like '%word%' 
    order by ge.field ASC"

似乎无法从此查询中获得正确的结果,任何包含$word的记录都不应显示?任何帮助非常感谢...

由于

2 个答案:

答案 0 :(得分:0)

最好的方法是调试变量的值,并尝试直接在db上执行。

看起来您尝试将'word'用作字符串,而不是将其用作变量。

$query = "
    SELECT * 
    FROM table1 ge 
    INNER JOIN table 2 ad 
    ON ge.ID = ad.ID 
    WHERE ge.ID = ad.ID AND ge.field LIKE '".mysql_real_escape_string($_REQUEST['search'])."%' 
    AND ge.field not like '%".$word."%' 
    order by ge.field ASC"

答案 1 :(得分:0)

Mysql语法查询看起来很好,可以忽略包含“word”的记录。 但是,对于每个问题,看起来“$ word”是一个变量,你想忽略包含$ word值的记录。找到建议的编辑,如下所示。

{{1}}