我的表名 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?
uid列是整数,您在where子句中传递的值首先被强制转换为整数...并且大多数整数转换算法仅获取它们可以在字符串中找到的第一组数字(并且忽略任何不匹配的数字之后)...因此它找到10而忽略其余的
| 归档时间: |
|
| 查看次数: |
305 次 |
| 最近记录: |