mysql拼接语句过长_Mysql中由于SQL语句过长引起的问题做数据统计时,后台数据库使⽤的是MYSQL。
有⼀个常⽤的需求,查询未订购⽤户的访问PV(⽤户唯⼀性标识是⽤户⼿机号);
ruby语言与性格写法⼀:
wedgesimgur 和9gag和reddit的区别复制代码 代码如下:
SELECT COUNT(1) FROM day_resinlog_2012_06_12 WHERE mobile_number NOT INsecond floor
小程序是哪个公司开发的(SELECT DISTINCT mobile_number FROM tbl_cartoon_order);
写法⼆:
通过 SELECT DISTINCT mobile_number FROM tbl_cartoon_order 获得⼀个List 结合,将获得的⼿机号的集合拼接成⼀个字符串当SELECT COUNT(1) FROM day_resinlog_2012_06_12 WHERE mobile_number NOT IN (xxxxx)中的xxxxx;
分析:
第⼀种写法使⽤了⼦查询,这样速度⽐较慢,⼀般是我们不⽤它的原因,也是我们选择第⼆种写法的原因;
第⼆种写法表⾯上没有什么问题,其实也有⼀个潜在的风险,假如我们的订购⼿机号有⼏百万,就可能会引起服务器报错。因为⼀条SQL如果很长,超过了MYSQL服务器配置⽂件(windows下的my.ini)中的max_allowed_packet的量,就会报错。
解决办法:改变max_allowed_packet的数量值。
有没有⼀个更好的办法?欢迎⼤家进⼊本站QQ:161228069 交流沟通。手机mysql安装配置教程
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论