登录
首页精彩阅读sql语句中尽量不要使用复杂的函数运算
sql语句中尽量不要使用复杂的函数运算
2018-03-16
收藏

sql语句中尽量不要使用复杂的函数运算

有时候我们对数据进行处理,可能有不同的处理结果存入数据库,比如result字段中存入:通过时存入success:1;不通过时存入success:0;无法处理时存入success:-1。如果要我们统计当天通过,不通过和无法处理的各有多少条,我们很容易想到case when命令,sql语句如下:

SELECT
            SUM(CASE WHEN result LIKE '%"success":1%' THEN 1 ELSE 0 END) passNum,
            SUM(CASE WHEN result LIKE '%"success":0%' THEN 1 ELSE 0 END) notPassNum,
            SUM(CASE WHEN result LIKE '%"success":-1%' THEN 1 ELSE 0 END) cantCheckNum
        
FROM tableName WHERE  c_date = 'today'

这个sql语句一下就把结果全部处理了,非常的方便,我们只需要使用一个对象接受一下在页面展示。

但是我想说我们尽量不要使用case when,DATEDIFF等复杂的函数。因为数据库特别是mysql,虽然提供了这些方法,但是如果访问量特别的大,数据内容特别的多,很容易造成速度变慢,甚至数据库的崩溃。如果只是公司内部用,访问量不大,还是没关系的。越大型的项目越不要用这些复杂的sql语句,尽量将所有数据都查出来,在代码中进行处理。

数据分析咨询请扫描二维码

客服在线
立即咨询