Php 我如何用laravel雄辩地编写此sql
出于测试目的,这个SQL在mysql中运行良好,我正在从中提取街道地址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
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它看起来像是在正则表达式中转义了两个反斜杠\\而只准备了一个\。。固定的