no | name | status
----+--------+---------
01 | karthi | 1,2,3,4
02 | kuma | 2,3,4
在上表中,多个status
值存储在表格中。
我使用以下代码,但其返回空值
$criteria = new CDbCriteria;
$criteria->compare = array("status"=>1);
$test = Test::model()->findAll($criteria);
如何仅提取status
1
个值行?
答案 0 :(得分:0)
更好的解决方案是拥有一个相关的表格。但是你可以用你的解决方案做到这一点。只需要爆炸状态值并获取结果数组的第一项。类似的东西:
$statuses = explode(",", $status); //$status is "1,2,3,4" for example
$result = $statuses[0];
答案 1 :(得分:0)
如果您的值以逗号分隔,您可以将它们分解为数组,然后检查数组中是否需要值:
$searchValue = 1;
$statuses = explode(",", $status);
if (in_array($searchValue, $statuses)) {
//your code here
}
PS:但正如@hamed所说,为这些数据建立一个单独的关系表是更好的数据库设计。