今日面試題分享

xianyunyehe發表於2021-03-24

今天去參加了一個面試,然後總共就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 {

}
```
  1. 假設給定的字串是一個字元陣列 ['a','b'....]
  2. 不允許使用正規表示式
  3. 你只能使用以下三個函式 emptyforeacharray_shift
  4. 假定給定的字元中只有小寫字母[a-z]@. 這三種字元
    正確的郵箱:test@test.com
    不是郵箱的字元:@..@@@a@test.cc.caac@..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 協議》,轉載必須註明作者和本文連結
閒雲野鶴

相關文章