使用LIKE检索MySQL php中的逗号分隔值

时间:2014-06-11 13:49:01

标签: php mysql sql

Array
(
    [0] => Array
        (
            [id] => 1
        )

    [1] => Array
        (
            [id] => 16
        )

    [2] => Array
        (
            [id] => 21
        )

    [3] => Array
        (
            [id] => 22
        )

    [4] => Array
        (
            [id] => 2
        )
)

以上数组是$id

$grp_id="";
foreach($id as $gid)
{
   $grp_id .=  " LIKE %".$gid['id']."% AND rj.applyto";
}

我的查询是

$sql="SELECT * FROM `table` j INNER JOIN `table2` rj ON j.eid = rj.eid WHERE rj.applyto LIKE $grp_id";

我在我的auery中犯了一个错误,建议我去coorect ..

2 个答案:

答案 0 :(得分:3)

你真的需要在这里使用LIKE吗? 12非常常见,我认为这不是你想要的。

假设这不是你真正想要的,只需使用IN()。更简单。

// Create comma separated list of IDs
$ids = implode(',', $id);
// Use IN() in our WHERE clause
$sql="SELECT * FROM `table` j INNER JOIN `table2` rj ON j.eid = rj.eid WHERE rj.applyto IN($ids);

答案 1 :(得分:0)

你只需要用逗号分隔来破坏你的id并使用FIND_IN_SET就像这样:

$ids = implode(',', $id_array);
$sql="SELECT * FROM `table` j INNER JOIN `table2` rj ON j.eid = rj.eid WHERE FIND_IN_SET(rj.applyto, $ids)";

试试这个!