84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
要实现 select * from table where userid=parentid and age>30 这种查询应该如何写?没有在文档里找到这种用法.
$results = Model::whereRaw('userid=parentid and age>30')->get();
$results = DB::table('table_name')->whereRaw('userid=parentid and age>30')->get();
@ty0716 说的是标准答案。
我来补充一下,为什么会这样。你的需求是,需要引用parentid作为where的右值,但是,在laravel中,where的右值,不能为sql,只能是常规的数据结构,例如字符串、数值、时间等。而不能是一个字段名(users.id)之类的有sql功能的东西,这是为了防止sql注入。
users.id
所以,只能使用@ty0716所说的raw方法来执行原生的sql了。
没人知道吗?
雷雷
方法一
方法二
@ty0716 说的是标准答案。
我来补充一下,为什么会这样。
你的需求是,需要引用parentid作为where的右值,但是,在laravel中,where的右值,不能为sql,只能是常规的数据结构,例如字符串、数值、时间等。而不能是一个字段名(
users.id
)之类的有sql功能的东西,这是为了防止sql注入。所以,只能使用@ty0716所说的raw方法来执行原生的sql了。
没人知道吗?
雷雷