| 用途 | 识别与规避隐式转换 |
|---|---|
| 典型 | varchar 列 = 数字、utf8 与 utf8mb4 连接 |
| 检测 | EXPLAIN 的 type=ALL + 告警 |
错误与正确写法
错误与正确写法
-- 差:phone 是 varchar,与数字比较触发转换
SELECT * FROM users WHERE phone = 13800138000;
-- 好:保持同类型
SELECT * FROM users WHERE phone = '13800138000';
-- 字符集不一致的连接同样禁用索引
-- 统一改用一致字符集或显式 CONVERTEXPLAIN 看到 type=ALL 且 filtered=100 时,检查条件值类型是否与列一致;字符集不一致还会在 SHOW WARNINGS 里给出提示。