#1054 - Unknown column 'default_ps_products.manufacturer_id' in 'order clause'
以下のステートメントで上記のエラーが発生するのはなぜp
ですか?
SELECT * FROM `default_ps_products` p WHERE p.`manufacturer_id` = 2
#1054 - Unknown column 'default_ps_products.manufacturer_id' in 'order clause'
以下のステートメントで上記のエラーが発生するのはなぜp
ですか?
SELECT * FROM `default_ps_products` p WHERE p.`manufacturer_id` = 2
この問題を解決するSELECT p.* FROM
には、 の代わりにSELECT * FROM
.
その理由は、phpMyAdmin が結果グリッドの最初の列のクエリに ORDER BY を追加しているためです。エイリアスのため、これを行うコードは失敗します。
この問題は phpMyAdmin 4.0.6 で再現されます。最新の 4.2.5 の状況がわからない
部分的なクエリを投稿したため、これは最初から明らかではありませんでしたが、完全なクエリで明らかになりました。
SELECT *
FROM default_ps_products
WHERE manufacturer_id=2
ORDER BY `default_ps_products`.`manufacturer_id` ASC
LIMIT 0, 30
選択でテーブルにエイリアスを追加する場合default_ps_products
、句でのみエイリアスを選択的に使用することはできません。同じエイリアスを使用するWHERE
ように変更する必要もあります。ORDER BY
つまり、完全なクエリは次のようになります。
SELECT *
FROM default_ps_products p
WHERE p.manufacturer_id=2
ORDER BY p.`manufacturer_id` ASC
LIMIT 0, 30
phpmyadmin を開きます。選択したデータベースをクリックします。これで、右側にすべてのテーブルのリストが表示されます。テーブルの構造をクリックしdefault_ps_products
ます。これで構造が見えてきました。ここで SQL タブをクリックし、'SELECT * FROM default_ps_products ORDER BY' としてクエリを実行します。このクエリを実行したら、問題を解決してください。
あなたのクエリは問題ありません。このクエリを実行してもエラーはありません。クエリに問題はありません。
SELECT * FROM default_ps_products AS p WHERE p.manufacturer_id = 2
それは正常に動作します.:)
phpmyadmin は、あるテーブルで突然このエラーを表示し始めました。唯一の修正は、列IDの名前をid2に変更してから元に戻すことでした。テーブルを削除して新しいコピーを作成しても役に立たなかった