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.