网站首页 > 文章中心 > 其它

MySQL怎么查询多列

作者:小编 更新时间:2023-08-25 10:12:46 浏览量:447人看过

聊聊mysql的多列组合查询

本文主要展示如何使用mysql的多列组合查询

多列组合查询平常比较少见,初次看还觉得挺神奇的.

mysql-filtering-by-multiple-columns[1]

[1] mysql-filtering-by-multiple-columns

mysql 多列索引 怎么查询

假如你有一个表,

SELECT * FROM test_tab WHERE name = 一个外部输入的数据

刚开始,数据不多的时候,执行效果还不错.

随着数据量的增加,这个查询,执行起来,越来越慢了.

然后在 name 上面 建立了索引

这样, 可以加快前面那个查询的速度.

但是,某天,你执行了下面这个SQL, 发现速度又慢了

为啥呢? 因为 age 字段上面,没有索引

索引只在 name 上面有

换句话说, 也就是 WHERE 里面的条件, 会自动判断,有没有 可用的索引,如果有, 该不该用.

例如:CREATE INDEX idx_test_name_age ON test_tab (name, age);那么SELECT * FROM test_tabWHEREname LIKE '张%'

这样的查询,将能够使用上面的索引.

多列索引,还有一个可用的情况就是, 某些情况下,可能查询,只访问索引就足够了, 不需要再访问表了.例如:SELECTAVG( avg ) AS 平均年龄FROMtest_tabWHEREname LIKE '张%'

这个时候, name 与 age 都包含在索引里面. 查询不需要去检索表中的数据.

mysql复杂查询--多表查询

多表查询是指基于两个和两个以上的表或是视图的查询.在实际应用中,查询单个表可能不能满足你的需求,(如显示sales部门位置和其员工的姓名),这种情况下需要使用到(dept表和emp表)

自连接是指在同一张表的连接查询

select * from emp where empno=(select mgr from emp where ename='ford');

子查询是指嵌入在其它sql查询语句中的select语句,也叫嵌套查询

单行子查询是 指只返回一行数据的子查询语句

select * from emp where deptno=(select deptno from emp where ename='smith');

多行子查询指返回多行数据的子查询 使用关键字 in

如果我们的一个子查询,返回的 结果是多列,就叫做列子查询

合并多个select语句的结果,可以使用集合操作符 union,union all

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章