如何比较逗号分隔值以获得现有值

时间:2017-12-28 08:11:32

标签: mysql

我将表格作为生产,字段名称为production_code

Production_code具有这样的价值,

    Id  production_code
     1  P101,P102,P103,P105
     2  P103,P106,P102
     3  P104
     4  P102,P105,P111

------我对PHP页面有价值,如$p_code='P102,P109';

现在我想从Table Production_code中获取行,其中变量$p_code的production_code中存在任何代码。

请帮帮我..我应该使用什么mysql查询

2 个答案:

答案 0 :(得分:0)

您可以使用功能FIND_IN_SET,例如:

SELECT * FROM yourTable
WHERE FIND_IN_SET('P102', production_code) OR FIND_IN_SET('P109', production_code)

答案 1 :(得分:0)

解。

<?php 
    $p_code='P102,P109'; //example
    $condition = '';
    foreach(explode(',',$p_code) as $r){//explode convert $p_code string into array. then apply foreach for compare every element of array From database saved value
        $condition .= 'FIND_IN_SET("'.$r.'", production_code) OR ';
    }
    $condition = rtrim($condition,' OR '); //this remove last occurence of OR from condition
    echo $sql = 'SELECT * FROM yourTable
            WHERE '.$condition;
?>