我有一串用逗号分隔的ID
$myIDs = 22,23,45,895;
如何编写查询以返回与字符串中的ID对应的值的记录? 这似乎不对:
SELECT *
FROM t1
WHERE itemID IN ($myIDs)
我想我在这里尝试PHP数组函数,哈?在mySQL中有这样的东西吗?
感谢任何建议。感谢。
答案 0 :(得分:2)
我认为你缺少引号,即在评估之前,确切的查询应该是这样的
SELECT *
FROM t1
WHERE itemID IN ('22','23','45','895');
因此,您需要做的就是: -
$myIDs = array(22,23,45,895);
$myIDs_string = "'".implode("','",$myIDs)."'";
然后在您选择的任何PHP / SQL库/框架中,使用PHP执行以下php查询: -
SELECT *
FROM t1
WHERE itemID IN ($myIDs_string);
希望这有帮助。
答案 1 :(得分:1)
$IDs = array(1,2,3,4,5);
// alternatively, you can write it like this...
// $IDs = "1,2,3,4,5";
if(is_array($IDs))
$IDs = implode(",",$IDs);
$query = "SELECT * FROM t1 WHERE itemID IN ($IDs)";
echo $query;