mySQL查询 - 如果是字符串中的值

时间:2011-01-22 13:18:14

标签: mysql

我有一串用逗号分隔的ID

$myIDs = 22,23,45,895;

如何编写查询以返回与字符串中的ID对应的值的记录? 这似乎不对:

SELECT *
FROM t1
WHERE itemID IN ($myIDs)

我想我在这里尝试PHP数组函数,哈?在mySQL中有这样的东西吗?

感谢任何建议。感谢。

2 个答案:

答案 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;