我不确定PHP Laravel框架中的whereRaw
是什么。你能提供好的和易于理解的例子吗?
WhereRaw()
是Laravel查询生成器的一个函数,它将您的输入按原样放入SQL查询的where子句中。
将其视为where()
函数,其输入参数在插入查询之前不会被处理。
请参阅以下示例:
$Query = DB::table('some_table')->where('YEAR(date)', 'YEAR(CURRENT_DATE)');
在此,Laravel将解决您的参数以构建查询。这将导致以下查询,因为您的输入将被视为某些field
及其value
:
SELECT * FROM `some_table` WHERE `YEAR(date)` = `YEAR(CURRENT_DATE)`
这是不希望的。
现在,如果您使用如下whereRaw
:
$Query = DB::table('some_table')->whereRaw('YEAR(date) = YEAR(CURRENT_DATE)');
现在Laravel把这个where子句放在你的查询中,如下所示:
SELECT * FROM `some_table` WHERE YEAR(date) = YEAR(CURRENT_DATE)
希望它有帮助(:
WhereRaw:有时您可能需要在查询中使用原始表达式。这些表达式将作为字符串注入到查询中。
如果您无法通过流畅的界面生成所需的查询,请随意使用whereRaw()
前任:
$users = User::whereRaw('age > ? and votes = 100', array(25))->get();
等于:
"SELECT * FROM users WHERE age > 25 AND votes = 100";
参考
在 laraval 中,我们使用查询生成器。但有时您需要执行原始 sql 查询。
因此,您可以将其注入whereRaw
如下例:
whereRAW('YEAR(event_datetime) =?', [$year])