我跟着Joomla doc关于如何从单个表中选择数据。我需要3个OR条件。
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->quoteName(array('column1', 'column2', 'column3' )));
$query->from($db->quoteName('#__table_example'));
$query->where($db->quoteName('column1') . ' LIKE '. $db->quote('condition1'));
OR where column2 == condition2
...
如何在我的示例中使用多个OR进行where语句?我没有找到任何关于语法正确性的主题。
答案 0 :(得分:1)
您只需在相同的where语句中添加或条件:
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->quoteName(array('column1', 'column2', 'column3' )));
$query->from($db->quoteName('#__table_example'));
$query->where($db->quoteName('column1') . ' LIKE '. $db->quote('condition1') . ' OR ' . $db->quoteName('column2') . ' LIKE '. $db->quote('condition2') . ' OR ' . $db->quoteName('column3') . ' LIKE '. $db->quote('condition3') );
答案 1 :(得分:1)
我给出一般答案,不仅包括 OR ,还包括几个 AND 问题。像这样使用 WHERE 查询: 例如:如果(cond1或cond2或cond3)中的一个为真且其中一个(cond4或cond5为真),则应运行查询:
$query->where( ( (cond1)OR(cond2)OR(cond3) ) AND ( (cond4)OR(cond5) ) );
因此,您可以按照自己喜欢的方式使用 OR 和 AND ,只需确保正确使用()
来定义条件。
在您的特定情况下,您将使用以下格式:
$query->where( (var LIKE cond1) OR (cond2) );
显然你的cond2是:column2 == condition2
我希望它能解决困惑。