0

MySQL選択クエリを書く正しい方法は何ですか?

SELECT * FROM table users WHERE status = 1 AND salary = 2000.00

また

SELECT * FROM table users WHERE status = '1' AND salary = '2000.00'
  1. 整数または小数を参照するときに引用符を付ける必要がありますか?
  2. 彼らが phpMyAdmin で使用しているこの引用文字 ` は、何か特別な目的があるのでしょうか、それとも単なる表面的なものなのでしょうか?
4

4 に答える 4

1
  1. 列が INTEGER の場合、整数を引用符で囲む必要はありません。MySQL はこれを理解しています。ただし、そうしても問題ありません。MySQL は自動的にデータ型を変換でき、そのような変換 1 回の追加コストはごくわずかです。(たとえば、異なるデータ型の列で 2 つのテーブルを結合する場合とは異なり、数百万の行に対して変換を行う必要があります。これはコストがかかります)。

  2. phpMyAdmin は、混乱を避けるために、スキーマ/テーブル/列名をバッククォート ` で囲みます。たとえば、呼び出されたテーブルmy.tableにアクセスできるようにするには、これらのバックティックが必要です。そうしないと、MySQL はmyがスキーマでtableあり、がテーブル名であるかどうかを認識できません。

    この正確な理由my.tableから、テーブル名の選択は賢明ではありません。どこかで誰かが間違いを犯すに違いありません。

于 2012-04-18T07:31:09.253 に答える
0

列のデータ型がcharまたはvarcharの場合は、引用符を使用して、MySQLに文字型であることを認識させる必要があります。整数の場合、数値は引用符を使用する必要はありません。給与がタイプ番号の場合、引用符は必要ありません。

于 2012-04-18T07:34:56.050 に答える
0

のデータ型に依存しますsalary。あるべきように保存されている場合は、引用符なしで問題ありません。

それ以外の場合 (悪い設計など)、暗黙のキャスト (悪い) を避けるために引用符が必要です。

于 2012-04-18T07:30:18.370 に答える
-1

値が数値でない場合にのみ引用符が必要なので、文字列、日付などの場合は引用符を付けます。

そして phpmyadmin はバックティックを追加するので、私の母のようなユーザーは常にバックティックを追加して私を悩ませます

于 2012-04-18T07:48:34.300 に答える