我想使用Codeigniter中的Active Record生成以下SQL代码:
WHERE name != 'Joe' AND (age < 69 OR id > 50)
尽我所能,我似乎无法做到以下几点
$this->db->select()->from('users')->where('name !=', 'Joe')->where('age <', 69)->or_where('id <', $id);
有任何想法吗?我的SQL查询太复杂了,所以我不想重写传统SQL中的所有内容。
更新
我的SQL代码是根据传递给模型方法的某些参数的值动态生成的。不能使用括号的问题会引起问题,因为运算符优先级是AND
先评估的OR
。
*这是我的活动记录代码的一部分,在此之前和之后还有一些其他代码:
... some $this->db->where() ...
... some $this->db->where() ...
if($price_range) {
$price_array = explode('.', $price_range);
for($i = 0; $i < count($price_array); $i++) {
if($i == 0) {
$this->db->where('places.price_range', $price_array[$i]);
} else {
$this->db->or_where('places.price_range', $price_array[$i]);
}
}
}
... some $this->db->where() ...
... some $this->db->where() ...
问题来了,因为我正在使用$this->db->or_where()
它引入了一个OR
子句,该子句使运算符的优先级陷入混乱,而又无法( )
用来更改顺序。
有什么办法可以解决这个问题?
解决了。动态生成SQL查询并将其插入$this->db->where()
。谢谢你们!
问题内容: 如果列匹配,是否有很好的方法在SQL中表示选择特定的行,否则选择更通用的行?就像是: 我只希望它返回一个特定的记录(如果存在),否则,如果找不到特定的列匹配项,则返回通用的“ ALL”记录。看起来COALESCE与我正在寻找的相似,但我不知道在语法上如何工作。 问题答案: @Blorgbeard答案(使用前1个和排序依据)可能是最好的方法,但只是有所不同,您还可以使用子查询,但不存在:
本章提供了有关如何使用JDBC应用程序从表中选择记录的示例。 这将在从表中选择记录时使用WHERE子句添加其他条件。 在执行以下示例之前,请确保您具备以下示例 - 要执行以下示例,您可以使用实际用户名和密码替换用户名和密码。 您的MySQL或您正在使用的任何数据库已启动并正在运行。 所需的步骤 (Required Steps) 使用JDBC应用程序创建新数据库需要以下步骤 - Import the
问题内容: 在WHERE子句中有使用SELECT语句描述的名称吗?这是好/不好的做法吗? 这会是更好的选择吗? 它远没有那么优雅,但是运行起来比以前的版本要快。我不喜欢它,因为它在GUI中没有非常清晰地显示(并且SQL初学者需要理解它)。我可以将其分为两个独立的查询,但是随后事情变得混乱了…… 注意:我不仅需要日期和分数(例如姓名) 问题答案: 称为相关子查询。它有它的用途。
问题内容: 谁能给我一些关于如何将这种子查询放入提示?(我正在使用 JPA 2.0 - Hibernate 4.x ) -第二个选择将始终获得单个结果或null。 问题答案: 尝试类似以下示例的操作来创建子查询: 请注意,由于附近缺少IDE,因此该代码尚未经过测试。
我可以通过两种方式来实现这一点,使用where子句或join查询,在spark SQL中哪个更快?为什么?Where子句比较列添加、选择那些记录还是在列本身上联接,哪个更好?
在MariaDB中,子句与,,和语句一起使用来选择或更改想要更改的满足指定特定行记录。 它是一个在表名后面出现的语句。 语法 注意:子句是一个可选的子句。它可以和,,,运算符一起使用。 1. WHERE子句与单一条件 示例: 我们有一个表,里边有一些数据。假设要查询表中的小于的所有记录。 执行上面查询语句,得到以下结果 - 2. WHERE子句与AND条件 为了方便演示,这里再插入一条数据 - 当