我正在从事一个基于Laravel5.7的项目,在这个项目中,Elount被用作ORM。
我需要在我的数据库上执行一个原始SQL语句。但是,我的查询在多个地方使用相同的参数。
这里有一个查询示例“这不是我真正的查询,更多的是为了解释问题。我的实际查询非常复杂,多次重用相同的参数”
SELECT * FROM table
WHERE a BETWEEN :from AND :to
AND c > :from
AND d < :to
我期待着下面的工作
$resorces = DB::select('SELECT * FROM table
WHERE a BETWEEN :from AND :to
AND c > :from
AND d < :to', ['from' => '2017-01-01 00:00:00', 'to' => '2018-10-01 00:00:00']);
但这给了我以下错误
SQLSTATE[HY093]:参数编号无效
如何在同一查询中使用Eloquent在多个位置重复使用相同的参数?
在模型中创建动态查询范围。
public function scopeQUERY ($query, $value1, $value2){
$query = DB::(YOUR QUERY);
return $query;
}
你的控制器
public function hello(Model name $Modelname){
$query = $Modelname->QUERY($value1, $value2);
}
文件https://laravel.com/docs/5.7/eloquent#query-scopes
这个怎么样?
$from = '2017-01-01 00:00:00';
$to = '2018-10-01 00:00:00';
$resorces = DB::table('table')
->whereRaw('a BETWEEN ? AND ?', [$from, $to])
->whereRaw('c > ?', [$from])
->whereRaw('d < ?', [$to])
->get();
你喜欢这个工作吗?
$from = '2017-01-01 00:00:00';
$to = '2018-10-01 00:00:00';
$resorces = DB::select('SELECT * FROM table
WHERE a BETWEEN ? AND ?
AND c > ?
AND d < ?', [$from, $to, $from, $to]);
问题内容: 假设我有以下代码: 这段代码的问题在于,协程内部的循环永远不会完成第一次迭代,而大小会不断增加。 为什么会这样发生,我该怎么解决? 我无法摆脱单独的线程,因为在我的真实代码中,我使用了单独的线程与串行设备进行通信,而且我还没有找到使用的方法。 问题答案: 不是线程安全的,因此您不能直接在多个线程中直接使用它。相反,您可以使用,它是提供线程感知队列的第三方库: 还有(全披露:我写了它),
问题内容: 我以前用C编写过代码,但是我是Java的新手,我正在为OOP类编写教程,这几乎是我第一次正式学习该语言。 在本教程中,我的教授制作了一个类,该类将用于测试我必须自己做的I / O助手类 (顺便说一句,该教程是(a)可选的,(b)不是用于标记的,所以我是(c)我以前从未使用过Java,而我的许多其他同学都没有使用过Java,所以我落后了)。 无论如何。在他制作的测试类中,他将方法“ ge
我需要写一个私人的方法在java接收2数组。有没有办法使他们必须是相同的长度? 比如: 公共静态无效方法(int[]arr1,int[]arr2[arr1.length])
我是从https://wallpapersden.com/street-fighter-fortnite-wallpaper/下载壁纸的。当我点击下载按钮时,另一个页面打开了“https://images.wallpapersden.com/image/download/street-fighter-fortnite_bgtoaw6umzqarawkpjrmbmdlrwzlbwu.jpg”,我想知
下午好, 问候你,亚历桑德罗
问题内容: 我需要在Sql Server 2005中进行选择查询的解决方案。 我想查询返回两个结果集,每个结果集恰好包含符合特定条件的所有记录的一半。我尝试将TOP 50 PERCENT与Order By一起使用,但是如果表中的记录数为奇数,则两个结果集中都会显示一条记录。我不想在记录集上重复任何记录。例子: 我有一个简单的表,其中包含TheID(PK)和TheValue字段(varchar(10