Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Điều gì đang xảy ra với chuỗi khớp trường số nguyên MySQL?

Chuỗi luôn được chuyển đổi thành 0 khi so sánh với số (tất nhiên chuỗi chứa số + chuỗi được chuyển đổi thành số. Nhưng đây không phải là phương pháp hay)

mysql> SELECT 'Yes' + 0;
+-----------+
| 'Yes' + 0 |
+-----------+
|         0 |
+-----------+
1 row in set, 1 warning (0.00 sec)

mysql> show warnings;
+---------+------+-----------------------------------------+
| Level   | Code | Message                                 |
+---------+------+-----------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'Yes' |
+---------+------+-----------------------------------------+

Nếu bạn muốn lưu trữ giá trị nhị phân (Có / Không hoặc Đúng / Sai) hoặc bộ giá trị nhỏ, hãy ENUM là lựa chọn tốt. Nó chiếm dung lượng ổ đĩa nhỏ và có thể sử dụng Chuỗi có ý nghĩa.

mysql> CREATE TABLE enum_test(a ENUM('Yes', 'No'));
Query OK, 0 rows affected (0.00 sec)

mysql> insert into enum_test values('Yes'), ('No'), ('Invalid');
Query OK, 3 rows affected, 1 warning (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 1

mysql> show warnings;
+---------+------+----------------------------------------+
| Level   | Code | Message                                |
+---------+------+----------------------------------------+
| Warning | 1265 | Data truncated for column 'a' at row 3 |
+---------+------+----------------------------------------+
1 row in set (0.00 sec)

mysql> select * from enum_test where a = 'Yes';
+------+
| a    |
+------+
| Yes  |
+------+
1 row in set (0.00 sec)

mysql> select * from enum_test where a = 'No';
+------+
| a    |
+------+
| No   |
+------+
1 row in set (0.00 sec)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Phát hiện nếu giá trị là số trong MySQL

  2. Kiểm tra xem mô hình laravel đã được lưu hay truy vấn đã được thực thi chưa

  3. Các vấn đề về bản ghi hoạt động CodeIgniter khi gọi nhiều thủ tục được lưu trữ

  4. truy vấn mysql để cập nhật trường thành max (trường) + 1

  5. ProxySQL:Tất cả các tài nguyên của Somenines