mysql并行查询语句
简介: 在刚刚结束的乌镇世界互联网大会上,阿里云自研POLARDB云原生数据库当选世界互联网领先科技成果。POLARDB既融合了商业数据库稳定可靠、高性能、可扩展的特征,又具有开源云数据库简单开放、自...
2024.11.21SQL 中最强大的也是最复杂的就是查询部分。在需要查询多条记录时我们一般会采用 in 关键字来指定要查询的条件:
select * FROM t_user WHERE uid IN (1,2,3,4,5,6,7,8,9);但如果对应的数据需要两个或更多字段才能确定,可能会写出以下的 SQL 语句:
select * FROM t_user WHERE(first_name = ‘first_name_1‘ AND last_name = ‘last_name_1‘) OR(first_name = ‘first_name_2‘ AND last_name = ‘last_name_2‘) OR(first_name = ‘first_name_3‘ AND last_name = ‘last_name_3‘) OR(first_name = ‘first_name_4‘ AND last_name = ‘last_name_4‘) OR(first_name = ‘first_name_5‘ AND last_name = ‘last_name_5‘) OR(first_name = ‘first_name_6‘ AND last_name = ‘last_name_6‘) OR(first_name = ‘first_name_7‘ AND last_name = ‘last_name_7‘);以上代码当然能用,但拼接出来的语句过于复杂。有一个方法可以改善这个问题,就是使用多列 IN 的语法。
MySQL 中的多列 IN 查询MySQL 是支持多列 IN 查询的。以上的 SQL 可以改写为:
select * FROM t_user WHERE (first_name,last_name) IN ((‘first_name_1‘,‘last_name_1‘),(‘first_name_2‘,‘last_name_2‘),(‘first_name_3‘,‘last_name_3‘),(‘first_name_4‘,‘last_name_4‘),(‘first_name_5‘,‘last_name_5‘),(‘first_name_6‘,‘last_name_6‘),(‘first_name_7‘,‘last_name_7‘));SQLite 中的多列 IN 查询SQLite 也支持多列 IN 查询,只是语法上和 MySQL 有所不同,需要多加一个 VALUES 关键字:
select * FROM t_user WHERE (first_name,last_name) IN ( VALUES(‘first_name_1‘,‘last_name_1‘),(‘first_name_2‘,‘last_name_2‘),(‘first_name_3‘,‘last_name_3‘),(‘first_name_4‘,‘last_name_4‘),(‘first_name_5‘,‘last_name_5‘),(‘first_name_6‘,‘last_name_6‘),(‘first_name_7‘,‘last_name_7‘));PostgreSQL 中的多列 IN 查询PostgreSQL 也支持队列 IN 查询,在官方文档中,这种形式被称为“行构造器”,参见:PostgreSQL 子查询表达式 。其多列查询的语法和 MySQL 相同:
select * FROM t_user WHERE (first_name,last_name) IN ( (‘first_name_1‘,‘last_name_1‘),(‘first_name_2‘,‘last_name_2‘),(‘first_name_3‘,‘last_name_3‘),(‘first_name_4‘,‘last_name_4‘),(‘first_name_5‘,‘last_name_5‘),(‘first_name_6‘,‘last_name_6‘),(‘first_name_7‘,‘last_name_7‘));其他数据库对多列 IN 查询的支持情况多列 IN 并非所有数据库都支持。根据网上的资料,Oracel 是支持该操作的,但 SQL Server 不支持。其他数据库的支持情况因笔者没有测试环境,并未进行测试。
简介: 在刚刚结束的乌镇世界互联网大会上,阿里云自研POLARDB云原生数据库当选世界互联网领先科技成果。POLARDB既融合了商业数据库稳定可靠、高性能、可扩展的特征,又具有开源云数据库简单开放、自...
2024.11.21#*** client options 相关选项 ***##以下选项会被MySQL客户端应用读取。注意只有MySQL附带的客户端应用程序保证可以读取这段内容。如果你想你自己的MySQL应用程序获取这些...
2024.11.21场景近日,在调研工作流Activiti7,构建本地项目,开发demo的时候,发起时间不一致问题。已知,Activiti在部署流程的时候,会操作表ACT_RE_DEPLOYMENT,此表的作用是记录流程...
2024.11.21最近在压测某个接口时,sql语句在单个执行的情况是50ms,但是并发导200的适合,耗时16s;数据库配置6个CPU,12G内存;数据量在30w,两个表join;于是研究下mysql的高并发啥情况。首...
2024.11.21点击关注,快速进阶高级架构师作者:燕南飞Liam引言小A正在balabala写代码呢,DBA小B突然发来了一条消息,“快看看你的用户特定信息表T,里面的主键,也就是自增id,都到16亿了,这才多久,在...
2024.11.20