2017-01-09 131 views
3

我遵循Joomla文档有关如何从单个表中选择数据。我需要3个或条件。条件选择记录 - Joomla

$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语句?我没有发现任何有关语法正确性的主题。

回答

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

我给这将不仅涵盖OR还包括一些问题笼统的回答。使用WHERE这样的查询: 例如:查询应运行,如果(COND1或COND2或COND3)中的一个是真实的和一个(COND4或cond5为true):

$query->where(((cond1)OR(cond2)OR(cond3)) AND ((cond4)OR(cond5))); 

所以,你可以使用ORAND任何你喜欢的方式,只要确保你正确地使用()来定义你的状况。

在您的特定情况下,你会使用的格式如下:

$query->where((var LIKE cond1) OR (cond2)); 

显然你COND2为:column2 == condition2

我希望它解决的困惑。