CDbCriteria使用总结
addCondition($condition, $operator = 'AND')
$condition参数可是是字符串和数组,当$condition参数为数组时,数组的值应为独立的查询条件,$operator为连接各个数组值的操作符
注意:使用此方法时,参数值应该进行过滤
addSearchConsition($column, $keyword, $escape = true, $operator = 'AND', $like = 'LIKE')
构造模糊查询,$column的值为列名或有效的SQL表达式,如果$keyword为空,则该方法不起作用。
addInCondition($column, $values, $operator = 'AND')
in条件查询,$column的值为列名或有效的SQL表达式,$values必须是一个数组,当数组中的值个数为1时,如果值为null,则最终的查询语句为“$column IS NULL”;如果不为null,则查询条件为“=”,并使用参数化查询。数组中的值大于1时,使用“in”条件,并使用参数化查询。
addNotInCondition($column, $values, $operator = 'AND')
使用方法同addInCondition
addColumnCondition($columns, $columnOperator = 'AND', $operator = 'AND')
$columns由键为列名值为列的值组成的数组,$columnOperator为连接$columns的条件,如果要构造null查询,只需将数组的值设为null即可。
compare($column, $value, $partialMatch=false, $operator='AND', $escape=true)
$value的值为数组时,将调用addInCondition方法。$value的值为字符串且$partialMatch为真,将调用addSearchCondition方法。$value的值为字符串且$partialMatch为假,则根据$value前面几个字符(‘<>’,'<','>', '=','<=','>=')构造比较条件,如compare('id','>1'),最后的结果是id > 1,如果以上列出的字符没有出现,默认为“=”。
addBetweenCondition($column,$valueStart,$valueEnd,$operator='AND')
如果$valueStart或$valueEnd为空,则该方法不起作用