MySQL 类型转换错误或预期行为?

标签 mysql sql

下面是对包含 32 位长度的 varchar 字符串作为 UUID 的 MySQL 数据库表的 SQL 查询示例。如您所见,WHERE 子句不包含完整字符串,但 MySQL 返回结果。

SELECT * FROM table WHERE uuid=9

id  uuid                                name
1   9c8f8632cbbac5b0708a9920f6fac755    John Smith

这是预期的行为吗?MySQL 强制转换字段的类型和搜索条件吗?

最佳答案

这是预期的行为。发生的事情是您将字符串与整数进行比较。在这种情况下,字符串 将根据前导数字转换为数字。

因为只有第一个字母是数字,所以它被转换为 9 —— 所以等式有效。

关于MySQL 类型转换错误或预期行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42196426/

相关文章:

php - Laravel 4,复杂的 IF SQL 选择

php - 将记录插入主表;另一个表的外键列

mysql - 如何在 MySQL 字段中选择逗号分隔值的唯一值?

mysql - jdbcTemplate查询序列化

sql 行数条件并集

sql - SQL中如何获取每一项的余数?

MySQL 5.7 创建触发器语法错误?

sql - 在 SQL 中递归查找最小对值

mysql - 删除此 JOIN 是否可以提高性能?

mysql - 如何上传/导入超过2MB的mysql phpmydadmin数据库