假设我们在表'order'中有一条id = 1的记录.这个查询:
SELECT * FROM 'orders' WHERE id = 'abc1'
Run Code Online (Sandbox Code Playgroud)
不会返回提到的记录.但是这个查询:
SELECT * FROM 'orders' WHERE id = '1abc'
Run Code Online (Sandbox Code Playgroud)
将返回id = 1的记录.这是因为当MySQL将字符串转换为数字'abc1'变为0,但'1abc'变为1.有一种很好的方法可以使MySQL严格搜索具有来自查询的id的记录,即不返回id = 1的记录提到的情况?
小智 6
怎么样使用:
SELECT * FROM 'orders' WHERE id LIKE '1abc' COLLATE utf8_bin
Run Code Online (Sandbox Code Playgroud)
甚至
SELECT * FROM 'orders' WHERE STRCMP(id, '1abc') = 0;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
123 次 |
| 最近记录: |