「列 ‘xxx’ は ‘where clause’ にはありません。」と表示された時の対処法

下記のSQLを実行した際に、エラーである「列 ‘xxx’ は ‘where clause’ にはありません。」と表示されました。

SELECT WP.ID, WP.post_title, WPM.meta_key, WPM.meta_value
FROM `wp_posts` AS WP INNER JOIN `wp_postmeta` AS WPM
ON WP.ID = WPM.post_id
WHERE WP.post_type = `xxx`

このエラーはデータベースのテーブルの列に ‘xxx’ がないというエラーです。

バッククォートで囲んだ文字列は、テーブルの列を意味します。

下記のWHERE構文でシングルクォートではなく、バッククォートを利用していたため発生したエラーでした。

WHERE WP.post_type = `xxx`

WHERE構文のバッククォートをシングルクォートに書き換えることで、エラーが表示されなくなりました。

SELECT WP.ID, WP.post_title, WPM.meta_key, WPM.meta_value
FROM `wp_posts` AS WP INNER JOIN `wp_postmeta` AS WPM
ON WP.ID = WPM.post_id
WHERE WP.post_type = 'xxx'
目次