Php 如何使用Laravel Eloquent查找表中字符串值的开头
我正试图找出解决以下情况的方法: 我在表格中有一个数字列表,例如:Php 如何使用Laravel Eloquent查找表中字符串值的开头,php,mysql,laravel,eloquent,Php,Mysql,Laravel,Eloquent,我正试图找出解决以下情况的方法: 我在表格中有一个数字列表,例如: 223 5533 81 816 现在我有一个请求,它应该在表中搜索正确的数字。请求中的数字(例如)可能类似于以下之一: 223 2234 22367 55332 现在,我试图在Laravel中找到正确的where-子句,该子句有助于获取正确的“通配符”数字 提到的$requestNumbers应导致以下查询结果: $requestNumber=223 =>223 $requestNumber=2234 =>223和22367
223
5533
81
816
现在我有一个请求,它应该在表中搜索正确的数字。请求中的数字(例如)可能类似于以下之一:
223
2234
22367
55332
现在,我试图在Laravel中找到正确的where
-子句,该子句有助于获取正确的“通配符”数字
提到的$requestNumber
s应导致以下查询结果:
$requestNumber=223
=>223
$requestNumber=2234
=>223
和22367
$requestNumber=55332
=>5533
$requestNumber=816349
=>81
和816
在我看来,它应该与下面的like
query相反:
Number::where('number', 'like', $requestNumber. '%')->get();
我需要“扭曲”的方式(我知道这是不可能的):
由于Cbroe的评论,我能够创建所需的查询,以实现我所寻找的:
Number::where(DB::raw('"' . $requestNumber . '"'), 'like', DB::raw('concat(number, "%")'));
@CBroe我编辑了我的问题,以使查询结果看起来更清楚。在您的示例中,结果应仅为
223
。您需要在此处浓缩number
列的内容和文本文本文本'%'
,但不要问我如何将其压入Laravel的查询生成器语法中。猜测类似于此处所示的语法可能会起到作用,涉及DB::raw
可能是这项工作的主要部分。
Number::where(DB::raw('"' . $requestNumber . '"'), 'like', DB::raw('concat(number, "%")'));