![](/img/trans.png)
[英]Laravel - How can select data in 4 tables at a time using 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.