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

使用LIKE在MySQL php中检索逗号分隔的值,php,mysql,sql,Php,Mysql,Sql,上面的数组是一个$id Array ( [0] => Array ( [id] => 1 ) [1] => Array ( [id] => 16 ) [2] => Array ( [id] => 21 ) [3] => Array (

上面的数组是一个
$id

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

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

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

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

    [4] => Array
        (
            [id] => 2
        )
)
我的问题是

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

我犯了一个错误,请建议我改正。

你真的需要像这里一样使用
吗<代码>1和
2非常普遍,我认为这不是你想要的

假设这不是您真正想要的,只需在()中使用
。简单得多

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

你真的需要像这里那样使用
<代码>1和
2非常普遍,我认为这不是你想要的

假设这不是您真正想要的,只需在()中使用
。简单得多

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

你真的需要像这里那样使用
<代码>1和
2非常普遍,我认为这不是你想要的

假设这不是您真正想要的,只需在()中使用
。简单得多

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

你真的需要像这里那样使用
<代码>1和
2非常普遍,我认为这不是你想要的

假设这不是您真正想要的,只需在()中使用
。简单得多

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

您只需将ID用逗号分隔并使用FIND_IN_SET进行内爆,如下所示:

// 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);

试试这个

您只需将ID用逗号分隔并使用FIND_IN_SET进行内爆,如下所示:

// 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);

试试这个

您只需将ID用逗号分隔并使用FIND_IN_SET进行内爆,如下所示:

// 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);

试试这个

您只需将ID用逗号分隔并使用FIND_IN_SET进行内爆,如下所示:

// 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);

试试这个

嗨,applyto(21,26,24,25)在我的表格中,例如我的id是26,你的id是21,两个id都将运行这将为你做到这一点。john applyto兄弟(16,21)如果id是21,它将不工作,但16它将工作应该工作。如果没有,你应该检查你的数据库,确保你有你期望的值。也可以从命令行运行查询,查看得到的结果。嗯,我的问题是一个数组,我给上面的数组排序好吗?在我的表中我给了它一个applyto(21,26,24,25),例如,我的id是26,你的id是21,这两个id都将运行,这将为你做到这一点。bro john applyto(16,21)如果id为21,它将不工作,但16,它将工作应该工作。如果没有,你应该检查你的数据库,确保你有你期望的值。也可以从命令行运行查询,查看得到的结果。嗯,我的问题是一个数组,我给上面的数组排序好吗?在我的表中我给了它一个applyto(21,26,24,25),例如,我的id是26,你的id是21,这两个id都将运行,这将为你做到这一点。bro john applyto(16,21)如果id为21,它将不工作,但16,它将工作应该工作。如果没有,你应该检查你的数据库,确保你有你期望的值。也可以从命令行运行查询,查看得到的结果。嗯,我的问题是一个数组,我给上面的数组排序好吗?在我的表中我给了它一个applyto(21,26,24,25),例如,我的id是26,你的id是21,这两个id都将运行,这将为你做到这一点。bro john applyto(16,21)如果id为21,它将不工作,但16,它将工作应该工作。如果没有,你应该检查你的数据库,确保你有你期望的值。也可以从命令行运行查询,看看您得到了什么结果。嗯,我的问题是一个数组,有没有对上面给出的数组进行排序的想法