mysql的union和or
2024-10-02 02:46:53
实践出真知!
使用union连接
select `id` from `表名` where 0=0 and active=1 and `fullname` like '王%' union
select `id` from `表名` where 0=0 and active=1 and `username` like '王%' union
select `id` from `表名` where 0=0 and active=1 and `mobile` like '王%' union
select `id` from `表名` where 0=0 and active=1 and `citizen_id_number` like '王%'
select `id` from `表名` where 0=0 and active=1 and `username` like '王%' union
select `id` from `表名` where 0=0 and active=1 and `mobile` like '王%' union
select `id` from `表名` where 0=0 and active=1 and `citizen_id_number` like '王%'
使用or
select `id` from `表名` where 0=0 and active=1
and `fullname` like '王%'
or `username` like '王%'
or `mobile` like '王%'
or `citizen_id_number` like '王%'
and `fullname` like '王%'
or `username` like '王%'
or `mobile` like '王%'
or `citizen_id_number` like '王%'
上面两种查询都能够用上索引,且数据库表中有500万条数据的情况下:
如果查询结果数据少的情况下,两种查询时间上差不多,0.006和0.005的区别,
但是当查询结果数据量多时,union查询时间16秒,or查询时间0.05秒。
因为union需要扫描4遍表,再把结果结合在一起。
但是不知道下面这个度娘的说法是为什么?留待以后验证。!
2019/07/08 17:17 验证
最新文章
- 新编码神器Atom使用纪要
- Java之构造器的作用
- 【BZOJ-1911】特别行动队 DP + 斜率优化
- VFP笔记
- JavaScript:JSON
- Eclipse+Mingw+Boost 环境搭建
- 17Mybatis_动态sql-sql片段
- javascript 网络是否连接的几种方案
- YTU 2609: A改错题--学生信息的输入和输出
- sqlserver中Profiler的使用
- ios获取权限
- Linux系统编程(8)—— 进程之进程控制函数fork
- HBuilderX——编译失败:HBuilderX 安装目录不能包括 ( 等特殊字符
- LinuxMint 下 B站 番 blv 缓存 转 mp4
- 通过TCPView工具查看foxmail用exchange方式连接exchange时用什么端口
- MacTex TexStudio Configuration 配置
- 用 JS 设置图片的最大宽度
- nginx常用的超时配置说明
- Python str() 函数
- python第三方库——xlrd和xlwt操作Excel文件学习