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 に答える