ホームページ >データベース >mysql チュートリアル >なぜ数値を MySQL ENUM カラムに保存すべきではないのでしょうか?

なぜ数値を MySQL ENUM カラムに保存すべきではないのでしょうか?

WBOY
WBOY転載
2023-09-04 12:29:091275ブラウズ

为什么我们不应该将数字存储到 MySQL ENUM 列中?

MySQL は、ENUM 値を整数キー (インデックス番号) として内部的に保存し、ENUM メンバーを参照します。整数値を ENUM カラムに格納しない主な理由は、明らかに MySQL が値ではなくインデックスを参照することになり、その逆も同様であることです。

次の例で明確になります:

mysql> Create table enmtest(Val ENUM('0','1','2'));
Query OK, 0 rows affected (0.18 sec)

mysql> Insert into enmtest values('1'),(1);
Query OK, 2 rows affected (0.19 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> Select * from enmtest;
+-----+
| Val |
+-----+
| 1   |
| 0   |
+-----+
2 rows in set (0.00 sec)

ここでは、文字列として「1」を挿入し、誤って数字の 1 も挿入しました。引用符なし。 MySQL は紛らわしいことに、メンバー リストの最初の項目 (つまり 0) への内部参照であるインデックス値として数値入力を使用します。

以上がなぜ数値を MySQL ENUM カラムに保存すべきではないのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。