【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【遇到的问题】
【复现路径】做过哪些操作出现的问题
【问题现象及影响】
当字段类型为varchar时,条件查询 in (数字),查询条件会失效,而mysql里是正常有效。
【附件】
请提供各个组件的 version 信息,如 cdc/tikv,可通过执行 cdc version/tikv-server --version 获取。
【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【遇到的问题】
【复现路径】做过哪些操作出现的问题
【问题现象及影响】
当字段类型为varchar时,条件查询 in (数字),查询条件会失效,而mysql里是正常有效。
【附件】
请提供各个组件的 version 信息,如 cdc/tikv,可通过执行 cdc version/tikv-server --version 获取。
估计是 case 问题,你可以看下执行计划。
而且 char 类型,就不要用 int 去 in。
可以百度下:数据库 char 类型字段,int 类型匹配。有很多说法的。
是啊,但是mysql就会自动转换。
这个问题只有技术讨论价值,实际这样用是要让应用改代码的。
不过 MySQL 会转的话,你可以在 tidb github 上,提个 issue,让厂商优化,兄弟。
SQL还是要规范一些比较好,MySQL中都不建议用varchar去对比int,更何况TiDB 并非100%兼容MySQL。