if.md 1.2 KB
Newer Older
M
loop  
Mars Liu 已提交
1 2 3 4 5 6 7 8 9 10
# 判断

Goods 数据库中有一个名为 trade 的存储过程,封装了交易过程,每一笔交易,trade都会被调用一次。Joe 
想在 trade 里加一段逻辑,实现:

1. 每一次交易,对 @counter 变量加一
2. 如果 @counter 是 1000 的整倍数,就将 @total_price 变量乘 0.8。

下面哪一段代码可以实现这个逻辑?

M
Mars Liu 已提交
11 12
<hr/>

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

F
feilong 已提交
15 16
* `show databases;` 列出所有数据库
* `show tables;` 列出所有表
M
Mars Liu 已提交
17

M
loop  
Mars Liu 已提交
18 19
## 答案

fix bug  
张志晨 已提交
20
```sql
M
loop  
Mars Liu 已提交
21 22 23 24 25 26 27 28 29 30
set @counter = @counter + 1;
if @counter % 1000 = 0 then
    set @total_price = @total_price * 0.8;
end if;
```

## 选项

### A

fix bug  
张志晨 已提交
31
```sql
M
loop  
Mars Liu 已提交
32 33 34 35 36 37 38 39
set @counter = @counter + 1;
if @counter % 1000 = 0 {
    set @total_price = @total_price * 0.8;
}
```

### B

fix bug  
张志晨 已提交
40
```sql
M
loop  
Mars Liu 已提交
41 42 43 44 45 46 47 48
set @counter = @counter + 1;
if (@counter % 1000 = 0) {
    set @total_price = @total_price * 0.8;
}
```

### C

fix bug  
张志晨 已提交
49
```sql
M
loop  
Mars Liu 已提交
50 51 52 53 54 55 56
if @counter % 1000 = 0 begin ;
    set @total_price = @total_price * 0.8;
end;
```

### D

fix bug  
张志晨 已提交
57
```sql
M
loop  
Mars Liu 已提交
58 59 60 61 62
set @counter ++;
if @counter % 1000 = 0 then begin 
    select @total_price = @total_price * 0.8;
end;
```