MySQL数据库范围、模糊、时间范围(时间段)查询语句

MySQL数据库范围、模糊、时间范围查询语句

My Environment

  • MySQL5.46

1. 模糊查询语句

SELECT 字段 FROM TABLENAME WHERE 某字段 Like 条件

其中条件有四种匹配方式:
1、%:表示任意0个或多个字符。可匹配任意类型和长度的字符,如果是中文,使用两个百分号(%%)来表示。

eg:SELECT * FROM TABLENAME WHERE NAME LIKE ‘%aa%’
功能:找出NAME中含有aa的所有记录
eg:SELECT * FROM TABLENAME WHERE NAME LIKE ‘%aa%’ AND NAME LIKE ‘%bb%’
功能:找出NAME中既有“aa”又有“bb”的所有记录
eg:SELECT * FROM TABLENAME WHERE NAME LIKE ‘%aa%bb%’
功能:找出 NAME中形如aabbcc,不能找出bbaacc

2、_: 表示任意单个字符。匹配单个任意字符,常用来限制表达式的字符长度语句

eg: SELECT * FROM TABLENAME WHERE NAME LIKE ‘aa
功能:找出 NAME中形如找出bbaacc,也就是aa位于中间的所有记录
eg: SELECT * FROM TABLENAME WHERE NAME LIKE ‘aa__’;
功能:找出 NAME中形如aabbcc,不能找出bbaacc,只能找出以aa开头的所有记录

3、[ ]:表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。

eg: SELECT * FROM TABLENAME WHERE NAME LIKE ‘[abc]d’
功能:找出 NAME中形如ad、bd、cd的所有记录
[ ] 内有一系列字符(01234、abcde之类的)则可略写为“0-4”、“a-e”
eg:SELECT * FROM TABLENAME WHERE NAME LIKE ‘a[a-e]’
功能:找出 NAME中形如aa、ab、ac、ad、ae的所有记录

4、[^ ] :表示不在括号所列之内的单个字符。其取值和 [] 相同,要求所匹配对象为指定字符以外的任一个字符。

eg:SELECT * FROM TABLENAME WHERE NAME LIKE ‘[^abc]d’
功能:找出 NAME中除了形如ad、bd、cd的所有记录
eg:SELECT * FROM TABLENAME WHERE NAME LIKE ‘d[^abc]’
其中abc也可以写成a-c
功能:找出 NAME中除了形如da、db、dc的所有记录


范围查询语句

between:between限制查询数据范围时包括了边界值
between and 包含时间界限,这就相当于>= <=,而> <不包含
not between不包括的数据范围

eg: SELECT * FROM TABLENAME WHERE time BETWEEN time1 AND time2
功能:找出time1 和 time2范围内的所有记录

eg: SELECT * FROM TABLENAME WHERE A NOT BETWEEN num1 AND num2
功能:找出不在 num1 和 num2范围内的所有记录


时间范围(时间段)查询语句

eg: SELECT * FROM TABLENAME WHERE time BETWEEN ‘2020-06-13 00:00:00’ and ‘2020-06-13 18:30:59’
功能:找出 2020-06-13 00:00:00 和 2020-06-13 18:30:59范围内的所有记录


END

猜你喜欢

转载自blog.csdn.net/cjw12581/article/details/106735644