MySQL SELECT查询返回整数和整数+字符串

pha*_*der 5 php mysql sql

我的表名 students

uid  |  name
-----+-------
10   |  John
11   |  Smith
Run Code Online (Sandbox Code Playgroud)

**数据类型:**

uid  int(11)
name varchar(256)
Run Code Online (Sandbox Code Playgroud)

我的查询:

SELECT name FROM students WHERE uid = '10'
Run Code Online (Sandbox Code Playgroud)

返回值John

我的第二个查询:

SELECT name FROM students WHERE uid = '10someChar'
Run Code Online (Sandbox Code Playgroud)

返回值John

为什么第二个查询返回John?

Tar*_*ast 5

uid列是整数,您在where子句中传递的值首先被强制转换为整数...并且大多数整数转换算法仅获取它们可以在字符串中找到的第一组数字(并且忽略任何不匹配的数字之后)...因此它找到10而忽略其余的