数据库为mysql。
我有一张表AAA。执行如下SQLSELECT type, sum(
CASE
WHEN date >= 1322820671621 THEN 50
WHEN date >= 1322388671621 AND date < 1322820671621 THEN 20
WHEN date >= 1320403931304 AND date < 1322388671621 THEN 10
END) AS number FROM AAA WHERE date >= 1320403931304
GROUP BY type得到如下结果
type number
18 300
26 270另:还有另一张表BBB。里面包含了type和number字段。我想把type=18的记录的number设成300,type=26的记录的number设成270.
目前我是先执行SELECT语句,根据select结果执行多次update语句来实现。
问:
能否用一句SQL语句,此语句包含了上面的SELECT语句,来实现这个功能?这个效率是否会比我现在的方式高?
我有一张表AAA。执行如下SQLSELECT type, sum(
CASE
WHEN date >= 1322820671621 THEN 50
WHEN date >= 1322388671621 AND date < 1322820671621 THEN 20
WHEN date >= 1320403931304 AND date < 1322388671621 THEN 10
END) AS number FROM AAA WHERE date >= 1320403931304
GROUP BY type得到如下结果
type number
18 300
26 270另:还有另一张表BBB。里面包含了type和number字段。我想把type=18的记录的number设成300,type=26的记录的number设成270.
目前我是先执行SELECT语句,根据select结果执行多次update语句来实现。
问:
能否用一句SQL语句,此语句包含了上面的SELECT语句,来实现这个功能?这个效率是否会比我现在的方式高?
解决方案 »
- mysql重装后数据源配置问题
- 带查询条件not in的游标,高手请进!
- 这么简单的SQL,竟然都写不对。。。。。
- mysql 命令台建库,表 如果不指名格式,默认是什么格式的字符编码??
- MySQL触发器和锁的问题!
- 有谁成功的把MySQL4.0升级到MySQL 5.0 ?
- 想跟你交流一下关于:查询速度的问题?请
- ?—?—?—?—?—?—如何通过ADO实现对mysql数据库中表的连接并读取记录?
- Mysql 触发器相关问题,在线等。拼接,修改
- 求解:WHERE IN () 查询每个限定查询条数
- 创建触发器错误。在线等待,在线结帖。
- Mysql5.5.14 Connector C/C++ 中文乱码问题
(SELECT type, sum(
CASE
WHEN date >= 1322820671621 THEN 50
WHEN date >= 1322388671621 AND date < 1322820671621 THEN 20
WHEN date >= 1320403931304 AND date < 1322388671621 THEN 10
END) AS number FROM AAA WHERE date >= 1320403931304
GROUP BY type
) b
on a.type=b.type
set a.number=b.number
2、在SQLITE中,将分组的语句生成物理表再替换
不好意思,没有讲清楚。。我以为在SQLitet Mysql中都语句都一样的。