今日面试题分享
今天去参加了一个面试,然后总共就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 协议》,转载必须注明作者和本文链接
推荐文章: