10

「test」という名前のテーブルがあります

「AND」という名前の列が含まれています

そのために、次のクエリを使用します

insert into test values ('a','abc');
insert into test values ('b','def');

「テスト」テーブルから「AND」列を選択したい

select AND from test;AND がキーワードであるため、クエリは機能しません

私は試した

select "AND" from test;
select 'AND' from test;

以下に示すように、両方のクエリが間違った結果を返します

ここに画像の説明を入力

「AND」列を選択するにはどうすればよいですか?

4

6 に答える 6

27

backtick代わりにキーワードをエスケープするために使用します。テーブルの作成方法と同じです。二重引用符または一重引用符を使用すると、それが解析されstringます。そのため、2 つのレコードが取得されます。and

select `AND` from test;
于 2012-09-13T06:39:02.693 に答える
5
  1. キーワードである名前を持つ列を作成しないでください。

  2. そのような名前の列を作成する場合は、バッククォート (MySQL のみ) または二重引用符 (SQL 標準) を使用して名前を囲みます。MySQL で二重引用符を機能させるために何らかのメカニズムをオンにする必要があるかどうかはわかりません。これにより、「区切り識別子」が作成されます。

    SELECT `AND` AS a, "AND" AS b
      FROM test;
    

以下も参照してください。

于 2012-09-13T06:45:19.597 に答える
2

そのSO古い質問と解決済み。詳細はこちらをご覧ください

それでも、これを試すことができます:

select your_tablename.column_name from table_name;

あなたのコード:-

select test.AND from test;
于 2012-09-13T07:07:03.387 に答える
1

予約語を列として使用する場合は、予約語の列をバッククォートで囲む必要があります.....

あなたの場合、次のようにする必要があります。

select `AND' from test;
于 2012-09-13T06:44:51.860 に答える
0

"" を使用して select setement を使用する場合、指定された文字列を選択するため、mssql のように列名を指定する必要があります。

select [AND] from test;

またはmysql syntexANDでテストから選択します。

于 2012-09-13T06:40:26.040 に答える
0

あなたの質問から:

CREATE TABLE `test` (
    `count` VARCHAR(50) NULL DEFAULT NULL,
    `AND` VARCHAR(50) NULL DEFAULT NULL
----^---^ Why do you use `backtick` (`) in CREATE TABLE statement?
)

ステートメントで使用backtickする必要があるのと同じ方法。SELECT

SELECT `AND` FROM test;
-------^---^-----------

MySQL: 予約語を参照してください。

于 2012-09-13T06:49:53.727 に答える