我想过滤多个以逗号分隔的值存储在我的数据库中。当我存储我的值时,我将它们摧毁为例如'53,57,58'。所以我可以再次爆炸,以在我的概述中显示正确的值。但现在的事情。
我现在使用inCondition过滤它们(我使用YII):
if( count( $sector ) > 0 )
$criteria->addInCondition( 'sector', $sector );
所以这在我选择1个选项时有用。如果我选择2个选项,则仅当所选选项与数据库记录的顺序相同时才有效。所以这不会发生很多;-)。
现在我的问题。如何将我的搜索值与我的数据库记录相匹配?有谁知道如何处理这个?
谢谢!
编辑: 解决方案:
用于循环抛出数组并为每个选定的项添加搜索条件,如下所示:
if( count( $niveau ) > 0 ){
foreach ($niveau as $n)
$criteria->addSearchCondition( 'niveau', $n, true, 'AND' );
}
答案 0 :(得分:0)
试试这个:
if(count($niveau)) > 0) {
$niveauConditions = array();
foreach($niveau as $n) {
$niveauConditions[] .= "CONCAT(',', `niveau`, ',') LIKE '%,{$n},%'";
}
$criteria->addCondition(implode(' OR ', $niveauConditions));
}
如果这有助于您,请告诉我。 另外您认为可以使用FIND_IN_SET