网站建设资讯

NEWS

网站建设资讯

MySQL怎么查询多列,mysql求多列的和

聊聊mysql的多列组合查询

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

创新互联建站于2013年创立,先为梁平等服务建站,梁平等地企业,进行企业商务咨询服务。为梁平企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

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

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

• selecting-where-two-columns-are-in-a-set[2]

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

[2] selecting-where-two-columns-are-in-a-set

mysql 多列索引 怎么查询

假如你有一个表,

SQL CREATE TABLE test_tab (2 id INT,

3 name VARCHAR(10),

4 age INT,

5 val VARCHAR(10)6 );你的业务,有一个查询,是

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

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

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

然后在 name 上面 建立了索引

CREATE INDEX idx_test4_name ON test_tab (name );

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

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

SELECT * FROM test_tab WHERE age = 25

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

索引只在 name 上面有

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

多列索引,就是一个索引,包含了2个字段。

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

AND age = 25

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

多列索引,还有一个可用的情况就是, 某些情况下,可能查询,只访问索引就足够了, 不需要再访问表了。例如: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


分享标题:MySQL怎么查询多列,mysql求多列的和
地址分享:http://cdweb.net/article/hesjgg.html