1

我正在尝试检索 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 服务器版本相对应的手册,以在第 1 行的 'dep_aerodrome) GROUP BY dep_aerodromeORDER BY cntDESC LIMIT 5' 附近使用正确的语法

而且我无法弄清楚它来自哪里。任何人都可以帮忙吗?

4

2 回答 2

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',...)
于 2013-07-29T09:54:46.147 回答
1

使用的正确语法NOT IN

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

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

在 MySql 中使用 IN 子句的不同方法

于 2013-07-29T09:50:41.340 回答