このhaving
句は、この句と同じ意味ではありませんwhere
。単純なクエリを実行するときは、where
-を使用する必要があります。これは、2番目のクエリで行ったことです。
having
group by
句の結果に条件を適用する必要がある場合に使用されます。
つまり、ここでは、クエリを次のように作成する必要があります。
$query = "SELECT zips.*
FROM zips
where zips.city LIKE '%$city%'
AND zips.stateabbr LIKE '%$state%'
LIMIT 1";
それでも、存在しない列または見つからない列(少なくともcity
および/またはstateabbr
)についてエラーが発生する場合は、その列がテーブルに存在しないことが原因です。
この場合、私たちにできることはあまりありません。テーブルの構造をチェックして、テーブルに含まれる列を判別する必要があります。
phpMyAdminなどのWebベースのツールを使用するか、次のようなSQL命令を使用して、その構造を確認できます。
desc zips;
参考までに、 MySQLのマニュアルページをselect
引用してください。
SQL標準では、HAVINGは
GROUP BY
句内の列または集計関数で使用される列のみを参照する必要があります。
...句
に含める必要のあるアイテムに
は使用しないでください。たとえば、次のように記述しないでください。HAVING
WHERE
SELECT col_name FROM tbl_name HAVING col_name > 0;
代わりにこれを書いてください:
SELECT col_name FROM tbl_name WHERE col_name > 0;
...
句は集計関数を参照できますが
、句は参照
できませんHAVING
WHERE