用于比较两个逗号分隔值的Mysql查询

时间:2012-04-18 07:24:25

标签: php mysql

我面临着一个小问题,以获得价值。

在我的数据库中,值 48,53,40 ,我得到的值 48,40,53 。我想比较两个值并显示输出。两者都是相同的价值。只有序列不同。

任何人都可以帮助我????

3 个答案:

答案 0 :(得分:2)

使用match-against with boolean mode并记住在列上添加全文索引以快速查询。

,例如 -

select * from temp_new where match(b) against('+48 +53 +40' in boolean mode);

答案 1 :(得分:0)

我想你会把它们放在一个字符串中。

你可以爆炸字符串,然后使用in_array()

<?php
$foo = '48,53,40';
$bar = '48,40,53';


function are_equal($foo, $bar, $separator = ','){
    $foo = explode($separator, $foo);
    $bar = explode($separator, $bar);

    foreach($foo as $number){
        if(!in_array($number, $bar)){
            return FALSE;
        }
    }

    return TRUE;
}

var_dump(are_equal($foo, $bar));

但当然,在这种情况下,DB重新设计会很健康!

答案 2 :(得分:0)

您应该使用array_diff而不是创建自己的。

http://php.net/manual/en/function.array-diff.php