Category 时装幻化

文章目录

查询一个表(tb1)的列数和行数查询一个数据库(database)中有多少表查询一个数据库共多少字段IF()函数日期条件的筛选查询表中id重复的数据查询表中除了id列的其他列名

查询一个表(tb1)的列数和行数

SELECT COUNT(*) FROM information_schema. COLUMNS WHERE table_name = 'tb1';

SELECT COUNT(*) FROM database.tb1

查询一个数据库(database)中有多少表

SELECT COUNT(*) TABLES, table_schema FROM information_schema.TABLES WHERE table_schema = 'database' GROUP BY table_schema;

查询一个数据库共多少字段

SELECT COUNT(column_name) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'database';

如图:

IF()函数

MySQL中的IF()函数作用类似于Java中的三目运算符

IF(condition, value_if_true, value_if_false)

参数 描述:

condition 必须,判断条件value_if_true 可选,当条件为true值返回的值condition 可选,当条件为false值返回的值

举例: case_status 字段有’曾被列入失信被执行人名单,现已移出’、‘已结案’、‘列入失信被执行人名单’三种取值,先要用IF将此字段提取成取值‘0’或者‘1’的dishonest_status 字段。

SELECT

base.report_id,base.credit_type,base.name,base.certificate_no,base.create_time,

force_execution.court_name,force_execution.cause,force_execution.register_date,

force_execution.result_type,force_execution.dishonest_status,force_execution.case_end_date,force_execution.apply_execution_object,force_execution.executed_object

FROM

(

SELECT distinct

t1.report_id,

t1.credit_type,

t1.name,

t1.certificate_no,

t1.create_time

FROM

gears.credit_base_info t1

where

t1.report_id is not null

) base # 投影的别名

left JOIN (

SELECT distinct

t3.report_id,

t3.court_name,

t3.cause,

t3.register_date,

t3.result_type,

IF(t3.case_status = '列入失信被执行人名单', '1','0') dishonest_status,

t3.case_end_date,

t3.apply_execution_object,

t3.executed_object

FROM

gears.pcredit_force_execution_record t3

) force_execution

ON base.report_id = force_execution.report_id

where

base.report_id is not null

日期条件的筛选

MySQL查询时间大于某天的数据

如查询数据生成时间大于2020/01/119这一天的数据

select * from credit_base where create_time>DATE_ADD('2020/01/19', INTERVAL -1 SECOND)

以上代码即:create_time>‘2020/01/18 23:59:59’

DATEADD(datepart, number, date)

datepart:指的是修改的类型,一般有YEAR,MONTH,DAY,HOUR,MINUTE,SECOND

number:修改的值,正数是未来的日子。负数是过去的日子

date:合法日期表达式

select * from credit_basewhere create_time>DATE_ADD(‘2020/01/18’, INTERVAL 1 DAY)

这种方式也可以查到,但没有排除当刚好有条记录是’2020/01/19 00:00:00’就查不到了。

对于日期DATETIME的条件筛选 有关时间的筛选

查询表中id重复的数据

select * from ecredit_info where id in (select report_id from ecredit_info group by id having count(id)>1)

查询表中除了id列的其他列名

SELECT

CONCAT(' select ',GROUP_CONCAT(COLUMN_NAME),' from ', TABLE_NAME,' ;')

FROM information_schema.COLUMNS

WHERE table_name = 'xxxx'

AND TABLE_SCHEMA = 'ccms_xxx' and COLUMN_NAME != 'id';

用于快速写出Select表中除了某个字段的所有字段

Copyright © 2088 玄霜问道-仙侠网游活动资讯 All Rights Reserved.
友情链接