Mysql语法错误最受欢迎

时间:2013-07-29 09:47:41

标签: php mysql syntax

我正在尝试检索mysql数据库中某个列的前5个值。

我有以下查询:

SELECT `dep_aerodrome`,
       Count(`dep_aerodrome`) AS `cnt`
FROM   sectors
WHERE ( `group` = '".$_SESSION['GROUP']."'
        AND ( $bases ) NOT IN dep_aerodrome )
GROUP  BY `dep_aerodrome`
ORDER  BY `cnt` DESC
LIMIT  5  

该查询包含WHERE子句和NOT IN,不包括已注册为基准的机场。

我收到以下语法错误:

您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以便在'dep_aerodrome'附近使用正确的语法)第1行的{1}} ORDER BY dep_aerodrome DESC LIMIT 5'

我无法弄清楚它的来源。任何人都可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

试试这个:

SELECT `dep_aerodrome`,
       Count(`dep_aerodrome`) AS `cnt`
FROM   sectors
WHERE `group` = '".$_SESSION['GROUP']."'
        AND ( $bases ) 
        AND dep_aerodrome NOT IN ($some_values)
GROUP  BY `dep_aerodrome`
ORDER  BY `cnt` DESC
LIMIT  5

我想你想这样做。 $some_values的格式可以是'value1','value2',...,如下所示:

dep_aerodrome NOT IN ('value1','value2',...)

答案 1 :(得分:1)

使用NOT IN的正确语法是

WHERE column_name NOT IN ('value1','value2',...)

如果您想将1个值与多个列匹配,请选中此项。

Different approach of using IN clause in MySql