Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用Laravel Eloquent查找表中字符串值的开头_Php_Mysql_Laravel_Eloquent - Fatal编程技术网

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, "%")'));