本文主要展示如何使用mysql的多列组合查询
成都创新互联-专业网站定制、快速模板网站建设、高性价比榆林网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式榆林网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖榆林地区。费用合理售后完善,十年实体公司更值得信赖。
多列组合查询平常比较少见,初次看还觉得挺神奇的。
• 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查询时,
可以指定单列,如下:
select uid from dusers
也可以指定多列如下:
select uid,uname from dusers
也可以指定全部列
select * from dusers
以上只是简单查询,对于连接查询的示例类同,只是型式不太一样。
select a.uid,a.uname,b.classname from dusers a,dclass b where a.classid=b.classid
如果是查询某个表的全部可以使用*代替。
select a.*,b.classname from dusers a,dclass b where a.classid=b.classid
。。。。查询的内容很多,不一一列举。
希望对你有帮助 。
假如你有一个表,
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 都包含在索引里面。 查询不需要去检索表中的数据。
1、创建测试表,
create table test_limit(id int ,value varchar(100));
2、插入测试数据,共6条记录;
insert into test_limit values (1,'v1');
insert into test_limit values (2,'v2');
insert into test_limit values (3,'v3');
insert into test_limit values (4,'v4');
insert into test_limit values (5,'v5');
insert into test_limit values (6,'v6');
3、查询表中全量数据,可以发现共6条数据,select * from test_limit t;
4、编写语句,指定查询3条数据;
select * from test_limit limit 3;