0

やあみんなはあなたが私を助けることができることを望んでいた、

私がいつもこの問題を抱えていたのか、それとも新しいのか、SQLタブのphpmyadminで、認識されるアポストロフィが私が入力したものと異なるのかどうかはわかりません。たとえば、

私がタイプするとき、それは

SELECT * FROM 'table'

これによりエラーが発生するため、代わりに、事前に作成されたクエリの逆コンマをコピーして貼り付けて、次のようにする必要があります。

SELECT * FROM `table`

アポストロフィがどのように異なるかを確認しますか?これを修正する方法はありますか?

また、私はWebで多くのクエリを見てきましたが、phpから呼び出すクエリでさえ、テーブル名にアポストロフィを付ける必要はないと思います。しかし、phpmyadminで記述すると、テーブル名にアポストロフィがなくてもクエリを実行できますか?

前もって感謝します。

4

5 に答える 5

6

MYSQLでは、tableは予約済みのキーワードです。mysqlの予約済みキーワードをクエリで使用する場合は、それらをbacktick( `)で囲む必要があります。

table予約キーワードとして、クエリは次のようになります。

SELECT * FROM `table`

一重引用符(')に関しては、mysqlでは文字列値を表します。

SELECT *, 'table' FROM `table`;

デモ

于 2012-06-22T12:19:06.430 に答える
2

予約語と競合する場合にのみ、テーブル名を引用する必要があります。

また:

` = Grave accent, or (because someone needed to invent a word) backtick
' = Apostrophe, or straight single quote
于 2012-06-22T12:16:59.640 に答える
1

テーブル名にアポストロフィは必要ありません。

于 2012-06-22T12:14:00.460 に答える
1

テーブル/フィールド名が予約語である場合は、`を使用する必要があります。例:

SELECT `distinct`, myfields FROM mytable

個別はSQLコマンドであるため、`を付ける必要があることに注意してください。

SELECT * FROM `table`

tableここは`の中にあるはずです。

于 2012-06-22T12:23:52.690 に答える
0

バックティックと一重引用符の2つの異なる文字があります。テーブル名と列名はバッククォートで囲むことができ、文字列は引用符で囲むことができます。修正する必要はありません:D

于 2012-06-22T12:15:23.413 に答える