今日面试题分享
今天去参加了一个面试,然后总共就4个题目,记录下,给大家一点启发。
1. 查询订单表(order)中,累计支付金额大于200的用户
| uid | amount |
|---|---|
| 1 | 10 |
| 2 | 10 |
2. 查询一个表中的重叠数据。
| id | uid | start | end |
|---|---|---|---|
| 1 | 1 | 2020-02-01 | 2020-03-01 |
| 2 | 1 | 2020-02-04 | 2020-04-03 |
| 3 | 2 | 2020-01-01 | 2020-02-01 |
| 4 | 2 | 2020-02-02 | 2020-05-01 |
解释: 在上述表中,uid=1的记录 在时间段上有重叠, id=1的记录和2020-02-01 - 2020-03-01 和 id = 2的记录 2020-02-04 - 2020-04-03。
写一个sql实现,找出找个重叠的两条数据。
3. 实现一个函数,判断给定的字符串是不是合法?
```php
function isEmail(array $string): bool {
}
```
- 假设给定的字符串是一个字符数组
['a','b'....] - 不允许使用正则表达式
- 你只能使用以下三个函数
empty、foreach、array_shift - 假定给定的字符中只有小写字母[a-z]、@、. 这三种字符
正确的邮箱:test@test.com
不是邮箱的字符:@.、.@、@@、a@test.cc.c、aac@..a
4. 防止超卖
商品表(goods)
good_id 商品id
num 库存
good_id num 1 1 $dbh->beginTransaction(); $dbh->execute("update goods set num = num -1 where goods_id =1") $dbh->commit();上面的代码有啥问题?,如何解决?
本作品采用《CC 协议》,转载必须注明作者和本文链接
关于 LearnKu
推荐文章: