簡體   English   中英

Laravel雄辯地替換和比較

[英]Laravel eloquent where replace and compare

我在users表中有一個phone number列。 電話號碼有不同的格式:

  • 123-456-7890
  • (123)456 7890

    等等...

我想通過刪除多余的字符進行比較並檢索結果。

這是mysql查詢

SELECT * FROM users WHERE REPLACE(REPLACE(REPLACE(`phonenumber`, '-', ''), '(', ''), ')', '') = '1234567890'

我該如何在Laravel口才中做到這一點?

我知道最好的選擇是在DB列上強制設置格式。 我想知道我們是否可以通過Laravel Eloquent做到這一點。

它不會與數據庫無關,但是:

$query->whereRaw('REPLACE(REPLACE(REPLACE(`phonenumber`, '-', ''), '(', ''), ')', '') = ?', [$phoneNumber]);

請參閱https://laravel.com/docs/5.7/queries#raw-expressions上的 原始方法


更好的方法是在將數字插入數據庫之前刪除這些字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM