MySQL:使用字符串参数搜索数字列

Mik*_*zev 3 mysql

假设我们在表'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)