mysql 中如果列是 int 类型,但是 where 语句中是字符串,会有何问题?

2017-07-02 23:31:33 +08:00
 esolve

比如一个表,列 id 的类型是 int 但是 sql 语句

select * from table where id="10";

运行没问题 但是这样的语句相比 select * from table where id=10;

会有何种问题?

2543 次点击
所在节点    问与答
5 条回复
yejinmo
2017-07-02 23:39:42 +08:00
不负责猜测会有性能问题

坐等楼下大佬详解
ihuotui
2017-07-02 23:55:20 +08:00
隐式转换自己看文档
ihuotui
2017-07-03 00:03:54 +08:00
@yejinmo 性能问题可以在高性能 mysql 一书提到,而且要考虑有没有索引,索引会失效,然后 mysql 要计算一次也是性能消耗
ghos
2017-07-03 09:36:49 +08:00
mysql 会把字符串转成 int 类型,有时候会导致索引失效
2xShake
2017-07-03 12:55:48 +08:00
之前阿里云的 rds 提供的查询优化方案中, 有说如果数据库是字符串类型的请加 [“ ”] 双引号,不是则不需要咯。肯定跟性能有关系。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/372560

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX