Yii addInCondition с поплавками: как? и почему addInCondition ('column', array (1.1, 1.3)) не работает?
Как добавить условие с поплавками?
Я много пробовал.
Это работает нормально:
$criteria=new CDbCriteria();
$criteria->addInCondition('order_id',array(36907));
$tasks=OrderTask::model()->findAll($criteria);
В моем случае возвращается 4 модели:
Но если я попытаюсь
$criteria=new CDbCriteria();
$criteria->addInCondition('order_id',array(36907));
$criteria->addInCondition('step',array(3.20));
$tasks=OrderTask::model()->findAll($criteria);
Или же
$criteria=new CDbCriteria();
$criteria->addInCondition('step',array("3.20"));
$tasks=OrderTask::model()->findAll($criteria);
Или же
$criteria=new CDbCriteria();
$criteria->addInCondition('step',array('3.2'));
$tasks=OrderTask::model()->findAll($criteria);
Результаты пусты.
Согласно журналу, запрос:
system.db.CDbCommand.query (SELECT * FROMorders_tasks
t
ГДЕ шаг =: ycp1. Связано с: ycp1 = 3.2)
Этот запрос в phpmyadmin возвращает 5360 строк
SELECT * FROM `orders_tasks` `t` WHERE step = 3.20
Этот запрос в phpmyadmin возвращает 0 строк
SELECT * FROM `orders_tasks` `t` WHERE step = '3.20'
SELECT * FROM `orders_tasks` `t` WHERE step = '3.2'
SELECT * FROM `orders_tasks` `t` WHERE step = "3.20"
Это попробовать
$criteria=new CDbCriteria();
$criteria->addInCondition('step',array("3,20"));
$tasks=OrderTask::model()->findAll($criteria);
возвращает модели с шагом = 3 или 20
Этот запрос в phpmyadmin возвращает строки с шагом = 3 ИЛИ 20
SELECT * FROM `orders_tasks` `t` WHERE step = '3,20'
Итак, какaddInCondition
с поплавками?
step
полеfloat(8,2)
Sql таблицы дампа:
CREATE TABLE IF NOT EXISTS `orders_tasks` (
`task_id` int(11) NOT NULL AUTO_INCREMENT,
`order_id` int(11) NOT NULL,
`step` float(6,2) NOT NULL,
`done` int(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`task_id`),
KEY `order_id` (`order_id`),
KEY `step` (`step`),
KEY `orderstep` (`order_id`,`step`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
Yii версия: 1.1.10