簡體   English   中英

如何選擇單詞以Laravel eloquent ORM中的數字開頭?

[英]How to select words start with a number in Laravel eloquent ORM?

我有這個MYSQL查詢。 我想選擇所有以數字開頭的單詞。 這是工作純MYSQL查詢。

SELECT 'seriesid', 'seriesname', 'imagepath', 'views', 'scenes'
    FROM `series`
    WHERE `seriesname` regexp '^[0-9]+'

現在我想用Laravel實現這個。 我做了一些代碼。 但不行。 這是我上面查詢的Laravel代碼。

DB::table('series')->
    select('seriesid', 'seriesname', 'imagepath', 'views', 'scenes')->
    where('seriesname', 'regexp', '\'^[0-9]+\'')->
    get();

代碼中的錯誤是什么? 它總是返回一個空數組[]

在原始MySQL查詢中,您不是在列數據中查找引號; 在你的Laravel中,你是。 嘗試刪除它們。

DB::table('series')->
    select('seriesid', 'seriesname', 'imagepath', 'views', 'scenes')->
    where('seriesname', 'regexp', '^[0-9]+')->
    get();

要在laravel中使用正則表達式,您必須使用whereRaw()。 所以改變這段代碼

DB::table('series')->select('seriesid', 'seriesname', 'imagepath', 'views', 'scenes')->where('seriesname', 'regexp', '\\'^[0-9]+\\'')->get();

DB::table('series')->select('seriesid', 'seriesname', 'imagepath', 'views', 'scenes')->whereRaw('seriesname regexp ?', array('\\'^[0-9]+\\''))->get();

如果您無法通過流暢的界面生成所需的查詢,請隨時使用whereRaw https://laravel.com/docs/5.0/eloquent

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM