11

#1054 - Unknown column 'default_ps_products.manufacturer_id' in 'order clause'

以下のステートメントで上記のエラーが発生するのはなぜpですか?

SELECT * FROM `default_ps_products` p WHERE p.`manufacturer_id` = 2
4

6 に答える 6

10

この問題を解決するSELECT p.* FROMには、 の代わりにSELECT * FROM.

その理由は、phpMyAdmin が結果グリッドの最初の列のクエリに ORDER BY を追加しているためです。エイリアスのため、これを行うコードは失敗します。

この問題は phpMyAdmin 4.0.6 で再現されます。最新の 4.2.5 の状況がわからない

于 2014-07-02T14:38:11.660 に答える
7

部分的なクエリを投稿したため、これは最初から明らかではありませんでしたが、完全なクエリで明らかになりました。

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
于 2013-06-26T06:10:25.647 に答える
2

phpmyadmin を開きます。選択したデータベースをクリックします。これで、右側にすべてのテーブルのリストが表示されます。テーブルの構造をクリックしdefault_ps_productsます。これで構造が見えてきました。ここで SQL タブをクリックし、'SELECT * FROM default_ps_products ORDER BY' としてクエリを実行します。このクエリを実行したら、問題を解決してください。

于 2015-07-15T07:32:33.613 に答える
1

あなたのクエリは問題ありません。このクエリを実行してもエラーはありません。クエリに問題はありません。

SELECT * FROM default_ps_products AS p WHERE p.manufacturer_id = 2 それは正常に動作します.:)

于 2013-06-26T05:49:08.763 に答える
0

phpmyadmin は、あるテーブルで突然このエラーを表示し始めました。唯一の修正は、列IDの名前をid2に変更してから元に戻すことでした。テーブルを削除して新しいコピーを作成しても役に立たなかった

于 2021-08-09T10:39:00.670 に答える