Joomla 在查询中使用OR
当在查询语句中使用多个WHERE时,默认是使用AND来来链接的。
多个WHERE 默认为AND链接
下面的查询值会返回name字段和state字段同时匹配的结果。
$state = 1;
$query =$db
->getQuery(true)
->select('COUNT(*)')
->from($db->quoteName('#__zmaxuser_item'))
->where($db->quoteName('name') ." = " .$db->quote(‘张敏’)
->where($db->quoteName('state') ." = " .$db->quote($state));
为了实现OR的效果,需要对查询语句作出修改,代码如下:
$query =$db
->getQuery(true)
->select('COUNT(*)')
->from($db->quoteName('#__my_table'))
->where($db->quoteName('name') ." = " .$db->quote($name_one),'OR')
->where($db->quoteName('name') ." = " .$db->quote($name_two));
在第一个where的后面,明确的说明使用OR来链接。
使用orwhere
使用orwhere可以改变条件为or 而不是 and.代码如下:
$query =$db
->getQuery(true)
->select('COUNT(*)')
->from($db->quoteName('#__my_table'))
->where($db->quoteName('name') ." = " .$db->quote($name_one)
->orWhere($db->quoteName('name') ." = " .$db->quote($name_two));