3

私はこの質問について調査しましたが、MySQL のマニュアル、MySQL のバグ レポート、スタック オーバーフロー、または他のフォーラムで読んだものは、これまで役に立ちませんでした。

単純な mysql 選択クエリがあります。

SELECT * FROM `Toyota` WHERE `Toyota`.`CollisionEstimatingID` = '22028589';

このクエリは mysql エラー コード 1054 で失敗します

節の列Toyota.CollisionEstimatingIDが不明ですWHERE

この列は存在します。データベース、テーブル、および列のスペルを少なくとも 30 回チェックしました。データベースを削除して再インポートしました。バッククォートありとバックティックなし、エイリアス ' とエイリアスなし' を試してみました。明示的に名前を付けた table.column 構文で試しました。言及されていますが(列ではなくテーブルのバッククォート、列ではなくテーブル名)、何も機能していないようです。Ubuntu 12.04 で mysql CLI から実行すると失敗し、PHP 5.3 コードから失敗し、phpMyAdmin 内で失敗します。テーブルをひっくり返す準備ができました。

私がこれを試してみると:

SELECT * FROM `Toyota`;

これは問題なく動作しますか?なんてこった、MySQLはとてもからかいです...

から派生したテーブル設定は次のとおりです。show create database Toyota;

CREATE TABLE `Toyota` (
  `CollisionEstimatingID` varchar(255) DEFAULT NULL,
  `OE_part_number` varchar(255) DEFAULT NULL,
  `Price` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1

興味深いメモ -- 文字エンコーディングの問題ではないでしょうか? show create table Toyota「CollisionEstimatingID」以外のすべてを使用して削除し、それを使用して SELECT ステートメントを作成することで、phpMyAdmin で一度だけ動作するようにしました。でも切って貼ってみたらダイスが出ない。

utf8 文字セットを使用してデータベースとテーブルを再作成して、それが役立つかどうかを確認しようとしましたが、役に立ちませんでした。phpMyAdmin ウィンドウからソース コードにテキストをコピーしてみました。列名の先頭にファンキーな文字が生成されました>>?CollisionEstimatingID。そして逆さまのクエスチョンマーク。

私は困惑しています。自分のプログラミング能力を試して兄弟を助けたい人はいますか?

4

2 に答える 2

0

SQL Serverでいくつかのテストを行ったので、コードに問題はありません。これを試してみてください

SELECT * FROM Toyota WHERE Toyota.CollisionEstimatingID = '22028589'
于 2013-04-12T08:56:06.563 に答える