mysql合并 两个count语句一次性输出结果的方法 需求场景:经常要查看有两个表统计数,用SELECT COUNT(*) FROM hotcontents,SELECT COUNT(*) FROM hotwords 逐句查看结果很麻烦 不直观, 需要能够合并成一句sql执行后一次性输出两个统计结果. SELECT COUNT(*) FROM hotcontents,hotwords 这样是不行的SELECT COUNT(*) FROM hotcontents UNION SELECT COU
一.查询加强 1.在mysql中,日期类型可以直接比较,需要注意格式 2.%:表示0到多个字符, _:表示单个字符 exp:显示第二个字符为大写O的所有员工的姓名和工资 select name from table where name like '_O%'; 3.查询某个字符字段为空 4.查询表结构:DESC table(table表示表名) 例:DESC user 二,分页查询 1.基本语法: 数据分组总结: 如果select语句同时包含有group by ,having , limit.
两个要求交集的表(列)的结构要一致,对应的字段数,字段类型都应该相同:将两个数据的数据列用 UNION ALL 关键字合并:将上面的所有需要比较的列 GROUP BY :最后 HAVING COUNT(任意一列,不能多列)>1,那么就是交集. SELECT a.* FROM( SELECT * from teacher UNION ALL SELECT * from student)a GROUP BY a.id,a.name,a.sex HAVING COUNT(a.sex)
4.1带In 关键字的子查询 一个查询语句的条件可能落在另一个SELECT 语句的查询结果中. SELECT * FROM t_book WHERE booktypeId IN (SELECT id FROM t_booktype);SELECT * FROM t_book WHERE booktypeId NOT IN (SELECT id FROM t_booktype); 4.2 带比较运算符的子查询 子查询可以使用比较运算符. SELECT * FROM t_book WHERE pri
IN为什么慢? 在应用程序中使用子查询后,SQL语句的查询性能变得非常糟糕.例如: SELECT driver_id FROM driver where driver_id in (SELECT driver_id FROM driver where _create_date > '2016-07-25 00:00:00'); 独立子查询返回了符合条件的driver_id,这个问题是解决了,但是所用的时间需要6秒,可以通过EXPLAIN查看SQL语句的执行计划: 可以看到上面的SQL语句变成了相