今天去參加了一個面試,然後總共就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 協議》,轉載必須註明作者和本文連結