where.md 1.2 KB
Newer Older
M
Mars Liu 已提交
1 2 3 4
# Where 条件

Joe 希望从 orders 表

fix bug  
张志晨 已提交
5
```sql
M
Mars Liu 已提交
6 7 8 9 10 11
create table orders
(
    id          int primary key auto_increment,
    item_id     int,
    amount      int,
    unit_price  decimal(12, 4),
M
Mars Liu 已提交
12
    price decimal(12, 4),
M
Mars Liu 已提交
13 14 15 16 17 18 19 20
    description varchar(2000),
    ts          timestamp default now(),
    deal        bool      default false
);
```

查询 2022 年 5 月 25 日下单的所有单价低于 20 的订单id,那么这个查询应该如何写?

M
Mars Liu 已提交
21 22
<hr/>

F
feilong 已提交
23
点击进入[MySQL实战练习环境](https://mydev.csdn.net/product/pod/new?image=cimg-centos7-skilltreemysql&connect=auto&create=auto&utm_source=skill){target="_blank"}。
F
feilong 已提交
24

F
feilong 已提交
25 26
* `show databases;` 列出所有数据库
* `show tables;` 列出所有表
M
Mars Liu 已提交
27

M
Mars Liu 已提交
28 29
## 答案

fix bug  
张志晨 已提交
30
```sql
M
Mars Liu 已提交
31 32 33 34 35 36 37 38 39 40
select id
from orders
where date(ts) = '2022-05-25'
  and unit_prise < 20;
```

## 选项

### A

fix bug  
张志晨 已提交
41
```sql
M
Mars Liu 已提交
42
select id
43 44 45
from (select * 
      from orders 
      where date(ts) = '2022-05-25') as o
M
Mars Liu 已提交
46 47 48 49 50
where unit_prise < 20;
```

### B

fix bug  
张志晨 已提交
51
```sql
M
Mars Liu 已提交
52 53 54 55 56 57 58 59
select id
from orders
where date(ts) = '2022-05-25'
   or unit_prise < 20;
```

### C

fix bug  
张志晨 已提交
60
```sql
M
Mars Liu 已提交
61 62
select id
from orders 
63 64
if date(ts) = '2022-05-25' 
    or unit_prise < 20;
M
Mars Liu 已提交
65 66 67 68
```

### D

fix bug  
张志晨 已提交
69
```sql
M
Mars Liu 已提交
70 71 72 73 74
select id
from orders
which date(ts) = '2022-05-25'
   or unit_prise < 20;
```