![](/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.