Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Giá trị 'false' có khớp với chuỗi trong MySQL không?

Trong MySQL, FALSE tương đương 0. Khi cộng chuỗi với số (ép kiểu), MySQL cố gắng chuyển chuỗi thành số.

Tạo bảng và dữ liệu

mysql> CREATE TABLE DemoTable804(Id VARCHAR(100)); 
Query OK, 0 rows affected (0.66 sec)

mysql> INSERT INTO DemoTable804 VALUES 
('101John'), ('Carol1002'), ('1000'), ('1010Bob'); 
Query OK, 4 rows affected

Thử cộng 0 (FALSE) với cột chuỗi

mysql> SELECT 0 + Id FROM DemoTable804;

Kết quả (có 2 cảnh báo):

+------+
| 0+Id |
+------+
| 101  |
| 0    |
| 1000 |
| 1010 |
+------+

Giải thích:

  • '101John' → chuyển số lấy phần đầu là 101
  • 'Carol1002' → không bắt đầu bằng số → thành 0
  • '1000' → toàn số → 1000
  • '1010Bob' → phần đầu là 1010

Kết luận: FALSE (0) không "khớp" chuỗi theo nghĩa thông thường. Phép 0 + 'string' là ép kiểu ngầm sang số, trả về số dẫn đầu hoặc 0.