1

私はこのSQLを実行しようとしています:

$sql="SELECT LEAST(".implode(',',$column_list).") as num FROM callplandata WHERE num IS NOT 0 ";

エラー:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '0' at line 1

私も試してみました

$sql="SELECT LEAST(".implode(',',$column_list).") as num FROM callplandata WHERE num IS NOT NULL ";

エラー:Unknown column 'num' in 'where clause'

しかし、それぞれに上記のエラーが発生しています。

どうすればこれを回避できますか - 0 ではない値を表示しようとしています

4

1 に答える 1

3

この場合HAVINGの代わりに使用します。WHERE

$sql="SELECT LEAST(".implode(',',$column_list).") as num FROM callplandata HAVING num != 0 ";

違いは何ですか?操作のWHERE前に適用され、結果を返す前にグループ化する必要があり (そのため、結果がカウントされる前に WHERE 句が呼び出されます)、後に適用されます (およびなどの集計でフィルター処理できます)。GROUP BYLEASTHAVINGMIN, MAX, LEAST

于 2013-08-21T07:30:00.077 に答える