繁体   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