玩转Mysql系列 - 第7篇:玩转select条件查询,避免采坑

字符按照_ASC_II码对应的值进行比较,比较时按照字符对应的位置一个字符一个字符的比较。

其他几个运算符(<、<=、>=)在此就不介绍了,用法和上面类似,大家可以自己练习一下。

逻辑查询运算符

当我们需要使用多个条件进行查询的时候,需要使用逻辑查询运算符。

| 逻辑运算符 | 描述 |

| — | — |

| AND | 多个条件都成立 |

| OR | 多个条件中满足一个 |

AND(并且)

select 列名 from 表名 where 条件1 and 条件2;

表示返回满足条件1和条件2的记录。

示例:

mysql> create table test3(a int not null,b varchar(10) not null);

Query OK, 0 rows affected (0.01 sec)

mysql> insert into test3 (a,b) values (1,‘a’),(2,‘b’),(2,‘c’),(3,‘c’);

Query OK, 4 rows affected (0.00 sec)

Records: 4  Duplicates: 0  Warnings: 0

mysql> select * from test3;

±–±–+

| a | b |

±–±–+

| 1 | a |

| 2 | b |

| 2 | c |

| 3 | c |

±–±–+

4 rows in set (0.00 sec)

mysql> select * from test3 t where t.a=2 and t.b=‘c’;

±–±–+

| a | b |

±–±–+

| 2 | c |

±–±–+

1 row in set (0.00 sec)

查询出了a=2 并且 b='c’的记录,返回了一条结果。

OR(或者)

select 列名 from 表名 where 条件1 or 条件2;

满足条件1或者满足条件2的记录都会被返回。

示例:

mysql> select * from test3;

±–±–+

| a | b |

±–±–+

| 1 | a |

| 2 | b |

| 2 | c |

| 3 | c |

±–±–+

4 rows in set (0.00 sec)

mysql> select * from test3 t where t.a=1 or t.b=‘c’;

±–±–+

| a | b |

±–±–+

| 1 | a |

| 2 | c |

| 3 | c |

±–±–+

3 rows in set (0.00 sec)

查询出了a=1或者b='c’的记录,返回了3条记录。

like(模糊查询)

有个学生表,包含(学生id,年龄,姓名),当我们需要查询姓“张”的学生的时候,如何查询呢?

此时我们可以使用sql中的like关键字。语法:

select 列名 from 表名 where 列 like pattern;

pattern中可以包含通配符,有以下通配符:

%:表示匹配任意一个或多个字符

_:表示匹配任意一个字符。

学生表,查询名字姓“张”的学生,如下:

mysql> create table stu (id int not null comment ‘编号’,age smallint not null comment ‘年龄’,name varchar(10) not null comment ‘姓名’);

Query OK, 0 rows affected (0.01 sec)

mysql> insert into stu values (1,22,‘张三’),(2,25,‘李四’),(3,26,‘张学友’),(4,32,‘刘德华’),(5,55,‘张学良’);

Query OK, 5 rows affected (0.00 sec)

Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from stu;

±—±----±----------+

| id | age | name      |

±—±----±----------+

|  1 |  22 | 张三      |

|  2 |  25 | 李四      |

|  3 |  26 | 张学友    |

|  4 |  32 | 刘德华    |

|  5 |  55 | 张学良    |

±—±----±----------+

5 rows in set (0.00 sec)

mysql> select * from stu a where a.name like ‘张%’;

±—±----±----------+

| id | age | name      |

±—±----±----------+

|  1 |  22 | 张三      |

|  3 |

  • 8
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值