繁体   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