Magento:使用分组子句过滤集合

2023-12-21


我想用分组子句过滤集合。在 SQL 中,这看起来像:

SELECT * FROM `my_table` WHERE col1='x' AND (col2='y' OR col3='z')  

我如何将其“翻译”为过滤集合->addFieldToFilter(...)?
Thanks!


如果您的集合是 EAV 类型,那么这很有效:

$collection = Mage::getResourceModel('yourmodule/model_collection')
    ->addAttributeToFilter('col1', 'x')
    ->addAttributeToFilter(array(
        array('attribute'=>'col2', 'eq'=>'y'),
        array('attribute'=>'col3', 'eq'=>'z'),
    ));

然而,如果你坚持使用一张平坦的桌子,我不认为addFieldToFilter其工作原理完全相同。一种替代方法是直接使用选择对象。

$collection = Mage::getResourceModel('yourmodule/model_collection')
    ->addFieldToFilter('col1', 'x');
$collection->getSelect()
    ->where('col2 = ?', 'y')
    ->orWhere('col3 = ?', 'z');

但这的失败在于运营商的命令。你会得到一个类似的查询SELECT * FROM my_table WHERE (col1='x') AND (col2='y') OR (col3='z'). The OR在这里并不优先,绕过它意味着更具体......

$collection = Mage::getResourceModel('yourmodule/model_collection')
    ->addFieldToFilter('col1', 'x');
$select = $collection->getSelect();
$adapter = $select->getAdapter();
$select->where(sprintf('(col2 = %s) OR (col3 = %s)', $adapter->quote('x'), $adapter->quote('y')));

传递不带引号的值是不安全的,这里使用适配器来安全地引用它们。

最后,如果col2 and col3实际上是相同的,如果您对单个列中的值进行 OR 运算,那么您可以使用以下简写:

$collection = Mage::getResourceModel('yourmodule/model_collection')
    ->addFieldToFilter('col1', 'x')
    ->addFieldToFilter('col2', 'in'=>array('y', 'z'));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Magento:使用分组子句过滤集合 的相关文章

  • Magento 设置脚本中的 ALTER TABLE 不使用 SQL

    乔纳森 戴 https stackoverflow com users 336905 jonathan day says 更新不应采用以下形式 SQL命令 我没遇到过 任何 DDL 或 DML 语句不能 通过 Magento 的配置执行 结
  • Magento - 将特定父类别的子类别列为链接

    我是 php 的初学者 并且一直试图将一个父类别的子类别作为链接调用 我得到了这个 它调出了 getName 但 getUrl 根本没有返回任何 URL 输出代码只是 li a href name of sub a li
  • HashMap 值需要不可变吗?

    我知道 HashMap 中的键需要是不可变的 或者至少确保它们的哈希码 hashCode 不会改变或与另一个具有不同状态的对象发生冲突 但是 HashMap中存储的值是否需要与上面相同 为什么或者为什么不 这个想法是能够改变值 例如在其上调
  • 是否可以使用 Java Guava 将函数应用于集合?

    我想使用 Guava 将函数应用于集合 地图等 基本上 我需要调整 a 的行和列的大小Table分别使所有行和列的大小相同 执行如下操作 Table
  • magento成功页面变量

    我正在尝试捕获一些 magento 成功页面变量以传递给我们的广告公司 到目前为止 我已经得到了这个 但变量没有输出任何内容 数据需要采用以下格式 price1 price2 price3 qty1 qty2 qty3 sku1 sku2
  • TinyMCE:如何禁用代码重写?

    我试图阻止 TinyMCE 在 Joomla 中 重写代码 添加 删除 移动标签和属性等 我不想设置每个标签 只需阻止 TinyMCE 更改我的代码即可 TinyMCE配置 verify html false 对我来说不起作用 切换到源代码
  • 为什么应该首选 Java 类的接口?

    PMD https pmd github io 将举报以下违规行为 ArrayList list new ArrayList 违规行为是 避免使用 ArrayList 等实现类型 而是使用接口 以下行将纠正违规行为 List list ne
  • 在泛型方法中返回原始集合类型

    假设我们想要创建一个像这样的函数minBy返回集合中同等极简主义的所有元素 def multiMinBy A B Ordering xs Traversable A f A gt B val minVal f xs minBy f xs f
  • PHP 中的坏词过滤器?

    我正在用 PHP 编写一个坏词过滤器 我在数组中有一个坏词列表 方法 clean text 的写法如下 public static function cleanse text originalstring if self is sorted
  • 如何在购物车中显示自定义属性(Magento)

    我尝试了很多东西 但没有一个起作用 我想我可以在产品页面上获取自定义属性 但我想知道 如何在购物车页面中获取它们 属性只是简单的文字 item gt getProduct gt load 将从数据库重新加载所有产品数据 虽然这可行 但请记住
  • 电子商务是否从头开始

    我需要开发一个包含电子商务部分的新网站 我来这里是想从你那里得到一些关于我应该走哪条路的提示 该网站将有一个静态部分 其中包括一些静态页面和用于销售产品的电子商务部分 我是 Django 和 PHP 开发人员 但这是我第一次需要开发电子商务
  • 在旧 Android 版本上使用 actionBarSherlock 的 searchView 的本机外观和感觉

    我注意到没有可行的解决方案显示如何使用操作栏在 listView 项目上使用过滤器 该解决方案适用于较旧的 Android 版本 如 2 3 x 我找到的唯一示例是片段示例的文件 LoaderCursorSupport java 但是 它仅
  • 在产品页面上显示最近浏览过的产品

    magento 当前的默认功能是在类别页面的右侧显示最近查看的产品 现在我想在产品页面底部显示相同的内容 使用的 phtml 文件在位置命名为 frontend base default template reports product v
  • 如何在产品listing页面显示产品详细描述?

    我想在产品列表页面上的简短描述后显示详细的产品描述 我正在做这个 但什么也没有出现 我也尝试过这个 Mage getModel catalog product gt load product gt getProductId gt getDe
  • Magento 路由器 URL - 需要连字符的路径名称

    假设我使用自定义控制器 其 url 路径 前端名称为 customcategory 好吧 显然如果我有一个名为 TestController php 和indexAction的控制器文件 url 路径将是 customcategory te
  • 从 SortedList 或 SortedDictionary 获取第 i 个值

    我有一个排序的对象集合 它可以是 SortedList 或 SortedDictionary 我将主要使用它来阅读 因此增加性能并不那么重要 我怎样才能得到第i个值 所以例如当我的集合中有数字 1 2 3 4 5 并且我想要中位数 本例中为
  • 维护插入顺序的并发集合[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可以维护插入顺序的并发列表 有人有什么好的推荐吗 我看一些番石榴 例如SetFromMa
  • 当通过 Map.put(K, V) 添加值时,是否必须通过 Map.get(K) 返回相同的实例?

    假设您有以下代码 Map
  • 将集合项复制到 .NET 中的另一个集合

    在 NET VB 中 如何获取一个集合中的所有项目 并将它们添加到第二个集合中 而不丢失第二个集合中预先存在的项目 我正在寻找比这更有效的东西 For Each item As Host In hostCollection1 hostCol
  • Magento 中的 jquery/prototype 冲突

    这是一个基于 Themeforest 的 Acumen 主题的 Magento 商店 出乎意料的是 jquery 的东西现在不起作用了 Acumen 通过 magento 静态块加载 jquery 但这些都没有被触及 昨天我正在努力添加 j

随机推荐

  • Rails link_to 与远程:true 不请求 JS

    尝试渲染一个模态来更新任务 但是当使用remote true和link to时 它只请求html格式 我什至检查了也不接受js的请求标头 Accept text html application xhtml xml application
  • 如何在VBScript中获取http响应头

    为什么这个 vbs 脚本检索空值 Option Explicit On Error Resume Next Dim h Set h CreateObject MSXML2 XMLHTTP h Open HEAD http google co
  • 在反应本机中持久进行用户身份验证的最佳方法

    我正在尝试编写用户登录代码并将其保留在反应本机中 我找到了 persist redux 和 React 导航库 它们是验证进度的最佳库吗 我可以使用 React 导航代替 persist redux 吗 你能给我推荐一个很好的实现教程吗 不
  • 如何将多维多项式与 numpy.polynomial 一起使用?

    我能够使用numpy polynomial拟合一维多项式的项 例如f x 1 x x 2 我如何拟合多维多项式 例如f x y 1 x x 2 y yx y x 2 y 2 y 2 x y 2 x 2 看起来 numpy 根本不支持多维多项
  • 为什么 String.Clone() 返回原始字符串而不是它的副本?

    出奇 String Clone 不返回字符串的副本String Copy 会做 相反 它返回 this 原始字符串 我想了解为什么 Net Framework 团队选择这样做 As per MSDN http msdn microsoft
  • 如何查找从 db.Query postgres 返回的行数

    我正在使用 goLang lib pq 驱动程序并尝试从数据库中获取行 rows err db Query select id name from mytable limit 5 我想要一个 if else 子句来检查结果集中是否有行 我这
  • 运行 Spring Boot 单元测试忽略 CommandLineRunner

    我正在尝试编写 Spring Boot 单元测试 但在运行单元测试时运行整个应用程序的 CommandLineRunner 有一些问题 应用程序类 SpringBootApplication Profile test public clas
  • 使用 SQLite 在 Fluent NHibernate 中使用 SchemaExport 的外键

    我正在尝试创建一个简单的数据库应用程序 它使用 Fluent NHibernate 和 SQLite 跟踪各种类型设备的贷款 但是 当我尝试使用生成数据库结构时SchemaExport为了在单元测试中使用 不会创建一对多关系的外键 这是我的
  • 如何处理 Hibernate-Search 索引恢复?

    当应用程序服务器意外退出时 Hibernate Search 无法正常关闭 Lucene 离开写锁每个索引目录后面的文件 这当然是很正常的事情 但是 重新启动应用程序后 锁定文件也会保留 这会导致某些时候出现锁超时异常 我的问题是是否有一种
  • 将递归二叉树遍历转换为迭代

    我被要求编写迭代版本 但我编写了递归版本 即 void inorderTraverse BinaryTree root if root NULL printf d root gt id else inorderTraverse root g
  • Flexbox - 元素位于顶部,另一个元素位于中心[重复]

    这个问题在这里已经有答案了 我怎样才能实现这样的目标 find必须垂直和水平居中 这是我的代码 main min height 50vh display flex justify content center menu padding 20
  • 避免 Dart 中类的继承

    Dart 有没有办法避免继承 我正在寻找类似的东西 final class MyJavaClass 不直接 不 您可以编写一个带有私有构造函数的类并通过静态方法访问它们 class MyFinalClass MyFinalClass cto
  • 攻击者能否破解 iOS 钥匙串和数据保护加密? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在开发一个 iOS 应用程序 它
  • Linux中进程的空闲时间

    我需要计算Linux中进程的CPU使用率 用户模式 系统模式 空闲时间 我可以使用以下方法计算用户和系统模式下的使用情况utime and stime值来自 proc PID stat 但我没有发现任何与空闲时间相关的内容 我知道我可以从中
  • .Net 5 后台服务的 MSI 安装程序

    我有一个 Net 5 控制台应用程序 我试图将其作为 Windows 服务运行 我已阅读有关如何执行此操作的所有在线文章并成功完成 即 使用BackgroundService 问题是 我想要一个 MSI 安装程序来部署它 并且我读过的有关在
  • 在 Visual Basic 中打印(多)维数组

    有没有一种简单的方法可以将可能是多维的数组打印到 VB NET 中的控制台以进行调试 即仅检查数组的内容是否正确 来自 Objective C 背景NSLog函数打印格式相当良好的输出 例如一维数组的以下内容 myArray 0 gt He
  • 了解 applicationSignificantTimeChange:

    我发现有时我的应用程序 Cocos2d 游戏 在显着的时间变化后会出现 错误 例如 case 1 当应用程序进入后台并在几分钟后重新启动它时 我可以看到加载图像然后应用程序 游戏恢复 case 2 当应用程序进入后台并在很长一段时间后更改应
  • __NSAutoreleaseNoPool():类 General 自动释放的对象 0x753c2f0,没有适当的池 - 只是泄漏

    我已经有一段时间没有注意到我的控制台输出了 我突然注意到很多奇怪的错误 NSAutoreleaseNoPool Object 0x753c2f0 of class General autoreleased with no pool in p
  • 向行值添加尾随零以确保有 10 位数字

    如果我有一个数据帧 其中每行中的最大数字为 10 但由于尾随零已被截断 某些 ID 小于 10 那么如何在 python 中添加尾随零以确保每行中有 10 位数字 ID 1234567689 123456768 12345676 ID 12
  • Magento:使用分组子句过滤集合

    我想用分组子句过滤集合 在 SQL 中 这看起来像 SELECT FROM my table WHERE col1 x AND col2 y OR col3 z 我如何将其 翻译 为过滤集合 gt addFieldToFilter Than