mysql ステートメントにバッククォートを追加する必要があるのはなぜですか?

大家讲道理
リリース: 2017-04-16 14:31:58
オリジナル
2813 人が閲覧しました

MySQL ステートメントでは、バッククォート (``) がよく登場します。最初は、これが何を意味するのかわかりませんでした。


Select * from `member` order by posts desc limit 0,10;
ログイン後にコピー


MYSQLの予約語を通常の文字と区別するために導入された記号です。

例: SELECT `select` FROM `test` WHERE select='フィールド値'

テストテーブルには、バックティックが使用されていない場合、選択フィールドがあり、MYSQL は選択を次のように扱います。予約語はエラーの原因となるため、 にフィールドとして MYSQL 予約語がある場合は、 を区別するためにバッククォートを追加する必要があります。

フィールド値が文字または文字列の場合は、select='field value'のように引用符

を追加する必要があります。

バックティック マークなしで構築されたテーブルには、MYSQL 予約語を含めることはできません。そうでない場合は、エラーが発生します

バックティック マーク `、数字 1 の左側の記号。

テーブル名には予約語を使用できません。区別するにはバッククォートを追加する必要がありますが、テーブル名を使用する場合はバッククォートを無視できます。

テーブル記述の作成エラー

テーブル`desc`の作成に成功

テーブル`test`の作成に成功

ドロップテーブルテストに成功

フィールド名には予約語は使用できません , たとえば、descの場合はこの時にバッククォートも追加する必要がありますし、insertなどを使用するときにもバッククォートを追加する必要があります。

テーブル`test`(`desc` varchar(255))の作成に成功しました

test(desc)に挿入する値('fxf')に失敗しました

test(`desc`)に挿入する値( 'fxf') 成功

mysql の共通予約語


mysql を使用するときは注意してください。その予約語をテーブル名や列名として使用しないでください。それ以外の場合は、不可解なエラーが発生します。

昨日、interval (時間間隔) という名前の 1 つのカラムを持つテーブルを作成した結果、データを挿入できませんでした。最終的に、interval は MySQL の予約語であることがわかりました。

今後同様のエラーが発生する場合は、まずテーブル名または列名の競合が原因であるかどうかを検討する必要があります。

参考のためにインターネットから MySQL の予約語リストを見つけました。


分析とASASC敏感間BIGINTBINARYBLOB両方BYコールカスケードケース変更文字キャラクターチェック照合列状態接続制約続行作成クロス_CURRENT_TIMESTAMPCURRENT_USERCURSORデータベースデータベースDAY_HOURDAY_MICROSECONDDAY_MINUTEDAY_SECONDDECDECIMALデフォルト遅延DESC 説明決定論的区別区別pダブルドロップデュアルそれぞれ囲まれていますエスケープしました存在しますEXITEXPLAINFALSEFETCHFLOAT8forFORCE外国人から全文GOTOグループHAVINGHIGH_PRIORITYHOUR_MICROSECONDHOUR_MINUTEHOUR_SECONDIF無視ININDEXINファイルTRUEUNDOユニークロック解除署名なし更新使用法使用法使用UTC_DATEUTC_TIMEUTC_TIMESTAMPVALUESVARBINARYVARCHARVARCHARACTERVARYING いつどこでと書き込み X509 例: ACTION、BIT、DATE、ENUM、NO、TEXT、TIME、TIMESTAMP したがって、セキュリティ
すべて追加 変更
変換
CURRENTDATECURRENT_ TIME
DECL ARE
削除
IF
FLOAT FLOAT4
GRANT
INNER INOUT
インセンシティブ INSERT INT
INT1 INT2 INT3
INT4 INT8 INTEGER
INTERVAL INTO IS
反復 参加 キー
キー キル ラベル
リーディング 離脱
いいね 制限 リニア
LINES LOAD LOCALTIME
LOCALTIMESTAMP LOCK LONG
LONGBLOB LONGTEXT ループ
LOW_PRIORITY MATCH MEDIUMBLOB
MEDIUMINT MEDIUMTEXT MIDDLEINT
MINUTE_MICROSECOND MINUTE_SECOND MOD
MODIFIES ナチュラル NOT
NO_WRITE_TO_BINLOG NULL NUMERIC
オン 最適化 オプション
オプション または 注文
OUT OUTER OUTFILE
Precision 主要な 手順
パージ RAID0 範囲
読む 読む 本物
参考文献 正規表現 リリース
名前を変更 代表食べる 交換
必要 制限 返品
取り消し 正しい Rいいね
スキーマ スキーマ SECOND_MICROSECOND
SELECT 敏感 セパレータ
設定 表示 小さい
空間 特定 SQL
SQL例外 SQLSTATE SQLWARNING
SQL_BIG_RESULT SQL_CALC_FOUND_ROWS SQL_SMALL_RESULT
SSL STARTING STRAIGHT_JO IN
テーブル 終了しました THEN
TINYBLOB TINYINT 小さなテキスト
トレーリング トリガー
UNION
しながら
のために、テーブル名とフィールド名の両方に「」を追加できます。

以上がmysql ステートメントにバッククォートを追加する必要があるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!