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值行?
发布于 2015-05-11 14:30:22
更好的解决方案是拥有一个相关的表。但是你可以用你的解决方案做到这一点。你只需要分解状态的值,并得到结果数组的第一项。类似于下面的内容:
$statuses = explode(",", $status); //$status is "1,2,3,4" for example
$result = $statuses[0];发布于 2015-05-11 16:31:38
如果你的值用逗号分隔,你可以将它们分解成数组,然后检查数组中是否有所需的值:
$searchValue = 1;
$statuses = explode(",", $status);
if (in_array($searchValue, $statuses)) {
//your code here
}PS:但正如@hamed所说,为这些数据建立一个独立的关系表是更好的数据库设计。
https://stackoverflow.com/questions/30160844
复制相似问题