MySQL 条件查询 limit、in、between and、like等等

2022-10-31 14:10:55 浏览数 (3)

MySQL 条件查询

环境:

代码语言:javascript复制
CREATE TABLE `test_user`  (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户id',
  `username` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户名',
  `password` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户名',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

INSERT INTO `test_user` VALUES (2, '今天刚学mysql,还是个', '123456');
INSERT INTO `test_user` VALUES (4, '终极it菜鸡', '123456');
INSERT INTO `test_user` VALUES (5, 'mysql入门了吗', '123456');
INSERT INTO `test_user` VALUES (6, '快了快了', '123456');
INSERT INTO `test_user` VALUES (7, '不行了不行了', '123456');
INSERT INTO `test_user` VALUES (8, '头发没啦,删库跑路', '123456');

1、and (并且)

语法格式:

SELECT 字段1,字段2… FROM <表名> WHERE 字段名=值 and 字段名=值

举个栗子

代码语言:javascript复制
SELECT * FROM test_user WHERE id=4 and username='终极it菜鸡';

2、or (满足其一)

语法格式:

SELECT 字段1,字段2… FROM <表名> WHERE 字段名=值 or 字段名=值

举个栗子

代码语言:javascript复制
SELECT * FROM test_user WHERE id=2 or username='终极it菜鸡';

3、like (匹配查询)

语法格式

SELECT 字段1,字段2… FROM <表名> WHERE 字段名 LIKE 条件

这里牵扯到一个通配符 和LIKE 一起使用的有 ” %“ 和”__“;

百分号 (%) 可以匹配任意长度的字符。

照常举个栗子 两边都放是前后都可以匹配任意长度的字符。 可以只在一边加

代码语言:javascript复制
select * from test_user where username like ”%学%“;

下划线(__) 和 % 的用法相同 区别是% 可以匹配多个字符 而 (_ _ ) 只能匹配一个字符。 两边加是为了匹配两边 加一边加两边 根据实际需求来。

代码语言:javascript复制
select * from test_user where username like ”_学_“;

4、limit (分页)

显示前N 行 简而言之 就是要查出几行数据。

SELECT * FROM <表名> LIMIT [位置偏移量] 行数

举栗子

代码语言:javascript复制
SELECT * FROM test_user  LIMIT 1,3;

通过这三条查询数据 应该能够看出位移偏移量是什么了吧,还有行数的意思应该也懂啦吧。

位移偏移量 就是 要从第几行开始查起 0 才表示 第一行数据

行数 : 就是从位移偏移量开始往后查 这个行数。

5、in (指定范围查询)

语法格式

SELECT 字段1,字段2… FROM <表名> WHERE 字段名 IN (值1,值2…)

例子: (* 表示查询这个表的全部字段)

代码语言:javascript复制
SELECT * FROM test_user WHERE id IN (1,2,3);

6、between and (范围查询)

语法格式 这个是要查 这个范围的值 。

SELECT 字段1,字段2… FROM 表名 WHERE 字段名 BETWEEN 值1 AND 值2 ;

也可以 在前面加上 NOT 表示不查这个范围的值

SELECT 字段1,字段2… FROM 表名 WHERE 字段名 NOT BETWEEN 值1 AND 值2 ;

举个爪子

代码语言:javascript复制
SELECT * FROM test_user WHERE id  BETWEEN  1 AND 5 ;

7、is null (查询空值)

语法表 可以查询某字段内容为空的记录。

SELECT 字段名1,字段名2… FROM 表名 WHERE 字段名 IS NULL

自言自语

回过头来看自己学过的知识,真的能够知道自己非常多的不足。

仍需努力。

0 人点赞