账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    mysql 这样的语句怎样写成一条语句
    28
    0
        SELECT count(1) as count0 FROM test WHERE time >= '2017-11-23 00:00:00' AND time <= '2017-11-23 17:50:07';
        SELECT count(1) as count1 FROM test WHERE time >= '2017-11-22 00:00:00' AND time <= '2017-11-22 23:59:59';
        SELECT count(1) as count2 FROM test WHERE time >= '2017-11-21 00:00:00' AND time <= '2017-11-21 23:59:59';
        SELECT count(1) as count3 FROM test WHERE time >= '2017-11-20 00:00:00' AND time <= '2017-11-20 23:59:59';
        SELECT count(1) as count4 FROM test WHERE time >= '2017-11-19 00:00:00' AND time <= '2017-11-19 23:59:59';
        SELECT count(1) as count5 FROM test WHERE time >= '2017-11-18 00:00:00' AND time <= '2017-11-18 23:59:59';
        SELECT count(1) as count6 FROM test WHERE time >= '2017-11-17 00:00:00' AND time <= '2017-11-17 23:59:59';
        
        
        现在写在一块是这样:
        
        
    SELECT
              count(ars0.id) as count0,
              count(ars1.id) as count1,
              count(ars2.id) as count2,
              count(ars3.id) as count3,
              count(ars4.id) as count4,
              count(ars5.id) as count5,
              count(ars6.id) as count6
          FROM
              test ars
     LEFT JOIN
              test ars0 ON ars.id = ars0.id AND ars0.time >= '2017-11-23 00:00:00' AND ars0.time <= '2017-11-23 17:54:21'
     LEFT JOIN
              test ars1 ON ars.id = ars1.id AND ars1.time >= '2017-11-22 00:00:00' AND ars1.time <= '2017-11-22 23:59:59'
     LEFT JOIN
              test ars2 ON ars.id = ars2.id AND ars2.time >= '2017-11-21 00:00:00' AND ars2.time <= '2017-11-21 23:59:59'
     LEFT JOIN
              test ars3 ON ars.id = ars3.id AND ars3.time >= '2017-11-20 00:00:00' AND ars3.time <= '2017-11-20 23:59:59'
     LEFT JOIN
              test ars4 ON ars.id = ars4.id AND ars4.time >= '2017-11-19 00:00:00' AND ars4.time <= '2017-11-19 23:59:59'
     LEFT JOIN
              test ars5 ON ars.id = ars5.id AND ars5.time >= '2017-11-18 00:00:00' AND ars5.time <= '2017-11-18 23:59:59'
     LEFT JOIN
              test ars6 ON ars.id = ars6.id AND ars6.time >= '2017-11-17 00:00:00' AND ars6.time <= '2017-11-17 23:59:59'
      
      
      

    总感觉这样写还没PHP的多条查询快呢?并且感觉这样写问题比较大,但是也不知道咋改~~~求大神

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • Prick[芒刺] 普通会员 1楼

      在MySQL中,您可以使用子查询来实现一条语句,以下是一个例子:

      sql SELECT * FROM ( SELECT column1, column2, column3 FROM table_name ) subquery WHERE column1 = 'value1' AND column2 = 'value2' AND column3 = 'value3';

      在这个例子中,SELECT * FROM subquery将返回子查询中的所有列。WHERE column1 = 'value1' AND column2 = 'value2' AND column3 = 'value3'将只返回那些column1column2column3值等于value1value2value3的行。

      请注意,这只是一个基本的例子,实际的语句可能会更复杂,取决于您的需求。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部