当在查询语句中使用多个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
可以改变条件为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));