Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.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雄辩地编写此sql_Php_Laravel_Eloquent - Fatal编程技术网

Php 我如何用laravel雄辩地编写此sql

Php 我如何用laravel雄辩地编写此sql,php,laravel,eloquent,Php,Laravel,Eloquent,出于测试目的,这个SQL在mysql中运行良好,我正在从中提取街道地址 select *, regexp_substr(trim(street_address), '^\\d+\\s+\\w+') street_address_extracted from user_listings WHERE is_found_before = 0 但是当我在laravel中运行这个查询时,因为我没有得到street\u address\u提取的字段结果,所以它总是空的,但是当我手动输入phpmyadmin

出于测试目的,这个SQL在mysql中运行良好,我正在从中提取街道地址

select *, regexp_substr(trim(street_address), '^\\d+\\s+\\w+') street_address_extracted from user_listings WHERE is_found_before = 0
但是当我在laravel中运行这个查询时,因为我没有得到street\u address\u提取的字段结果,所以它总是空的,但是当我手动输入phpmyadmin时,我得到了1000行

下面是我如何把这些写进拉威尔的

DB::select(DB::raw("select *, regexp_substr(trim(street_address), '^\\d+\\s+\\w+') street_address_extracted from user_listings WHERE is_found_before = 0"));

当在phpmyadmin中手动运行时,我得到了这个。 试试这个-

DB::table('user_listings')
    ->selectRaw("*, regexp_substr(trim(street_address), '^\\d+\\s+\\w+') AS street_address_extracted")
    ->where('is_found_before', 0)
    ->get();

尝试了您的查询,显然使用了get(),但由于某些原因,提取的街道地址仍然为空。它似乎还没有运行。您可能还需要
AS
关键字。我见过QueryBuilder对此有点挑剔
regexp\u substr(trim(street\u address),“^\\d+\\s+\\w+”)作为提取的street\u address
仍然相同,我已经上传了我得到的图像。@LearningPHPOOP尝试用
->toSql()
替换
->get()
,然后查看查询,也许会有助于调试。@Froxz它看起来像是在正则表达式中转义了两个反斜杠\\而只准备了一个\。。固定的