как составить условие с where id IN()
как составить условие с where id IN()
подскажите, как составить sql условие ввиде where id IN() на ActiveRecord
хочу полю id передать несколько значений для выборки
хочу полю id передать несколько значений для выборки
Re: как составить условие с where id IN()
andry писал(а):подскажите, как составить sql условие ввиде where id IN() на ActiveRecord
хочу полю id передать несколько значений для выборки
Код: Выделить всё
$criteria=new CDbCriteria;
$criteria->condition=...
$criteria->params=...
$criteria->addInCondition('id',array());//то что тебе надо
model()->findAll($criteria);
Re: как составить условие с where id IN()
Мне нужно выбрать из таблицы записи у которых ид должен совпадать с заданным и поле имя должно содержать одно из заданных значений. Я пишу:
Вылетает ошибка:
Код: Выделить всё
$criteria = new CDbCriteria();
$criteria->condition = 'parent_id=:parent_id AND name=:name';
$criteria->params = array(':parent_id'=>$value->id);
$criteria->addInCondition(':name', array('Имя1', 'Имя2', 'Имя3'));
$elementCharacteristic = ElementCharacteristic::model()->findAll($criteria)
Подскажите, пожалуйста, что я делаю не так?CDbCommand failed to execute the SQL statement: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens
Animum rege, qui nisi paret, imperat. (Управляй своим настроением, ибо оно, если не повинуется, то повеливает)
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: как составить условие с where id IN()
Код: Выделить всё
$criteria = new CDbCriteria();
$criteria->condition = 'parent_id=:parent_id';
$criteria->params = array(':parent_id'=>$value->id);
$criteria->addInCondition('name', array('Имя1', 'Имя2', 'Имя3'));
$elementCharacteristic = ElementCharacteristic::model()->findAll($criteria)
Жду Yii 3!
Re: как составить условие с where id IN()
Спасибо!
Animum rege, qui nisi paret, imperat. (Управляй своим настроением, ибо оно, если не повинуется, то повеливает)
Re: как составить условие с where id IN()
круто, спасибо большое
Re: как составить условие с where id IN()
Cтолкнулась с необходимостью сделать условие типа
метод addInCondition позволяет указать оператор AND или OR но максимум что получается - это
т.е. не совсем что надо
Получается таких вот более сложных условий с помощью него не написать - только прямым кодом в $criteria->condition ?
Код: Выделить всё
WHERE a IN (:ar1) AND (b IN (:ar2) OR c IN (:ar3))
Код: Выделить всё
WHERE a IN (:ar1) AND b IN (:ar2) OR c IN (:ar3)
Получается таких вот более сложных условий с помощью него не написать - только прямым кодом в $criteria->condition ?
Re: как составить условие с where id IN()
Можно группировать при помощи
http://www.yiiframework.com/doc/api/1.1 ... ith-detail
Получится что-то типа
http://www.yiiframework.com/doc/api/1.1 ... ith-detail
Получится что-то типа
Код: Выделить всё
$criteria = new CDbCriteria();
$criteria->addInCondition('a', array('Имя1', 'Имя2', 'Имя3'));
$criteria2 = new CDbCriteria();
$criteria2->addInCondition('b', array('Имя4', 'Имя5', 'Имя6'));
$criteria2->addInCondition('c', array('Имя7', 'Имя8', 'Имя9'), 'OR');
$criteria->mergeWith($criteria2);
Последний раз редактировалось rak 2011.09.19, 20:36, всего редактировалось 2 раза.
Re: как составить условие с where id IN()
rak супер! спасибо! Так и знала что не могли разработчики не учесть такой нюанс
Выложу наглядный результат
Выложу наглядный результат
Код: Выделить всё
$cri=new CDbCriteria;
$cri2=new CDbCriteria;
$cri->addCondition('col1',$arr1);
$cri2->addCondition('col2',$arr2);
$cri2->addCondition('col3',$arr3,'OR');
$cri->mergeWith($cri2,true);