在MySQL中的varchar字段中搜索整数值

ram*_*ous 3 mysql search varchar integer

我有一个user如下所示的表格:

id || email
---------------------------------
1  || someone@foo.bar
---------------------------------
2  || 1manwithblueshirt@bar.foo
---------------------------------
Run Code Online (Sandbox Code Playgroud)

为什么是这样:

1manwithblueshirt@bar.foo
Run Code Online (Sandbox Code Playgroud)

这个搜索的结果?

SELECT * FROM user WHERE email = 1
Run Code Online (Sandbox Code Playgroud)

Gor*_*off 5

因为MySQL决定将电子邮件转换为整数.规则是将前导字符转换为数字,直到字符不是有效数字.

这是一个简单的例子:

select (case when '1abc' = 1 then 'a' else 'b' end)
Run Code Online (Sandbox Code Playgroud)