有同事问我上述问题,我把我的实现思路写出来.子查询把查询的结果和默认的结果全部显示.父查询通过伪列rownum来筛选,如果查询有结果,就有几条就显示几条,而不去显示子查询中的默认值:如果查询没有结果,那就把默认值显示出来 举例: select * from (select table_name from user_tables where rownum < 3union allselect 'default' from dual ) where rownum <= (select case (
一.show相关命令语句 1.查看表的索引 show index from tbl_name; 1 table:表名 non_unique:索引是非唯一的?.0否,唯一是索引的.1是,是非唯一索引.(ps:这让我想起了令我自挂东南枝的英语) key_name:索引名称 seq_in_index: 索引中的起始序列号 column_name:创建索引的名称 collation:列以什么形式存储在索引中,A升序,null不排序 2.显示系统变量 show session variables [lik
users 表中有 两个字段 id 和 name 表数据大概如下: id name 1 AAA 2 BBB 3 CCC 4 AAA 请写查询语句查询出name字段中重复的值. 这个需要用到子查询 先查询出重复字段的值,根据分组统计name字段相同值的 数据条数大于1的就是重复的数据 即 select name from users group by name having count(*) > 1 查到重复的数据 指的是得到了重复
在创建表时,某字段为非空时间戳,timestamp not null 问题来了,使用workbench建表时,如果值非空,是需要有一个默认值的,不然会报错. 那么,如果是更新时自动填充可以使用DEFAULT ON UPDATE CURRENT_TIMESTAMP,而只在INSERT时插入,不更新则使用CURRENT_TIMESTAMP: 问题是,如果不想使用CURRENT_TIMESTAMP怎么办泥? `end_time` timestamp NOT NULL DEFAULT '0000-00
1.开启慢查询日志服务 (a) sql 查询配置 # 查看慢日志是否开启,开启为ON show variables like 'slow_query%'; show variables like 'long_query_time'; # 设置全局,查询时间超过1s的日志记录下来 set global slow_query_log='ON'; set global long_query_time=1; # 如果使用慢日志输出为table, mysql.slow_log表中sql_text 为blo