时间戳转换器

Laravel 4,雄辩 - 语句和运算符之间

日期:2023-02-24     浏览:314    
【中文标题】Laravel 4,雄辩 - 语句和运算符之间【英文标题】:Laravel 4, eloquent - between statement and operators 【发布时间】:2013-12-12 09:47:11 【问题描述】:

有一个我用来在 mysql 中运行的查询:

select * from my_table where $val between col1 and coL2;

它工作正常,但使用 laravel 4,进行该查询的唯一方法是使用类似

my_model::where('col1','>=',$val)->where('col2','<=',$val)

这种方式似乎行不通,因为我在使用通常的“select * ...”时没有相同的结果

有什么想法吗?

只是为了澄清我的要求: 在我的情况下,我没有“...... value1 和 value2 之间的列”但是“commun 之间的值” 所以在我看来我不能使用“中间”

【问题讨论】:

在 Laravel 论坛上查看这篇文章:forums.laravel.io/viewtopic.php?pid=46789#p46789 【参考方案1】:

你可以试试这样的

// Get records whose id between 3 and 6
$users = User::whereBetween('id', array(3, 6))->get();

或者使用变量

$id = 'id';
$from = 1;
$to = 5;
$users = User::whereBetween($id, array($from, $to))->get();

这将获取所有ID 在1 和5 之间的记录。

【讨论】:

感谢您的回复。我的问题是查询中的输入数据必须在列之间。 没看懂,能不能描述的更详细一点? @WereWolf-TheAlpha 您正在硬编码“介于”值array(3,6),但他需要在表中的两列之间进行选择 -- SELECT * FROM table WHERE $desiredValue BETWEEN col1 AND col2 @TheAlpha $attendances= Attendance::whereBetween('attndate', array($fromdate, $todate))->get(); .....这个命令不适用于日期??还有其他比较日期的解决方案吗??【参考方案2】:

应该这样做...

$results = my_model::select('*')-&gt;whereRaw("$val between col1 and coL2")-&gt;get();

我认为这很安全,但您可能需要先清理$val。

【讨论】:

laravel 会帮你清理这个吗? @Rafael, @user1669496,Laravel 不对变量做任何事情。您需要这样调用:$results = my_model::select('*')-&gt;whereRaw("? between col1 and coL2", ['someValue'])-&gt;get(); 进行安全查询。【参考方案3】:

在不创建 MySQL 模型的情况下,我们可以生成如下查询:

// If column value need to checked between value 1 and value 2
$DBConnection->table('users')->whereBetween('id', array(3, 6))->get();

// If value need to checked between column 1 and column 2 value
$DBConnection->->table('users')->whereRaw("$val between col1 and col2")->get();

【讨论】:

【参考方案4】:

您使用 where() 的雄辩示例不起作用,因为您将比较运算符颠倒了。如果要检索 val 在 col1 和 col2 之间的行,应该是这样的:

my_model::where('col1','<=',$val)->where('col2','>=',$val)

请注意,比较运算符被反转为“val 大于或等于 col1 且 val 小于或等于 col2”。

您可能需要稍微眯眼才能看到它。 :)

【讨论】:

相关文章

laravel 4 - 如何限制(采取和跳过)雄辩的 ORM?

{】laravel4-如何限制(采取和跳过)雄辩的ORM?【英文标题】:laravel4-howtoLimit(TakeandSkip)forEloquentORM?【发布时间】:2013-08-1418:55:52【问题描述】:TL;DR你能否限制EloquentORM查询,例如使用take()和skip(),以便生成的mysql查询也受到限制...}

猫王运算符与非空断言:这些语句之间的区别?

{】猫王运算符与非空断言:这些语句之间的区别?【英文标题】:ElvisOperatorvsNon-NullAssertion:DiffBetweenTheseStatements?【发布时间】:2018-12-2519:21:29【问题描述】:试图理解Kotlin中的null安全性:以下两个语句似乎都可以正常工作并且...}

雄辩的选择语句给了我一个错误

{...ror【发布时间】:2019-11-2913:30:52【问题描述】:我仍然对laravel雄辩。我想用eloquent写下面的查询SELECT*FROMtableAwhereid=$variableIDANDgrade_id=$gradeID我在雄辩中尝试了以下内容:$totalGreen=DB::select(\'S}

在laravel中以雄辩的关系获取错误列的数据

{】在laravel中以雄辩的关系获取错误列的数据【英文标题】:Fetchingdatawithwrongcolumnwitheloquentrelationshipinlaravel【发布时间】:2018-07-0122:58:35【问题描述】:我有两个模型Country和State。它们之间的关系如下:国家:publicfunctionStates()retu...}

group by 语句期间行值之间的数学运算

{】groupby语句期间行值之间的数学运算【英文标题】:mathoperationsbetweenrowvaluesduringgroupbystatement【发布时间】:2021-03-0803:28:08【问题描述】:在这个previousquestion中,我试图按照目前的方式对我的产品进行分组。现在我正在尝试将我...}

7java格式注意要点

{...行4、并排语句之间加空格;//一行有两个内容加空格5、运算符两侧加空格;1、有特定的条件(for循环)6、}

五数据导入与基本的select语句(代码片段)

{...T关键字去除结果中的重复行3.2使用AS设置别名3.3着重号3.4运算符3.4.1算术运算符3.4.2比较运算符3.4.3逻辑运算符3.4.4位运算符(用得较少)3.4.5运算符的优先级3.5用ORDERBY关键字对查询结果排序3.6用}

减少,异或运算符 (--) 在 if 和 for 语句上

{】减少,异或运算符(--)在if和for语句上【英文标题】:decrease,XORoperator(--)onifandforstatement【发布时间】:2012-08-2400:15:28【问题描述】:我是一个试图从C++代码中理解算法的新手,之后我想在java中实现它,但我发现理解代码有困难...}

python人生苦短,我学python(代码片段)

{...1.类型转换1.1不要误解类型转换1.2int()float()str()bool()2.算术运算符3.赋值运算符4.关系运算符4.1关系运算符4.2字符串比较5.逻辑运算符6.条件运算符(三元运算符)7.运算符优先级8.流程控制语句8.1条件判断语句(if语句)8.2命令...}

c基础数据类型进制运算符语句(代码片段)

{目录一、常量1.1宏常量1.2const常量1.3字符串常量1.4整数常量二、十进制与二进制2.1十进制,二进制,八进制,十六进制的关系2.2二进制与八进制和16进制的关系2.3十进制数转换为2进制的技巧三、原码反码与补码3.1原码推算补码的方式3...}

Copyright ©2021 时间戳转换器 小常识 114pp | 陕ICP备18005036号