谁能告诉我这其中的技术原因?
CREATE TABLE test (
id varchar(3) NOT NULL,
PRIMARY KEY (id)
);
INSERT INTO test VALUES ('0'), ('1'), ('2'), ('ab'), ('bb');
select * from test;
DELETE FROM test WHERE id=0;
Which Deletes 3 rows from table test.
最佳答案
因为这个:
SELECT 0 = 'ab';
+----------+
| 0 = 'ab' |
+----------+
| 1 |
+----------+
要删除确切的行,请使用 BINARY 运算符,它将强制逐字节比较 -
DELETE FROM test WHERE id = BINARY 0;
关于mysql - 为什么删除了 3 行的 sql 查询拼图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7581501/