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 ..
答案 0 :(得分:3)
你真的需要在这里使用LIKE
吗? 1
和2
非常常见,我认为这不是你想要的。
假设这不是你真正想要的,只需使用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)";
试试这个!