我有一个包含一个数组的会话,并且该数组充满了 id。从 MySQL 表中选择与这些 id 对应的所有行的最佳方法是什么?
所以我需要类似的东西:
SELECT * FROM table WHERE id = $_SESSION['ids']
显然,这不起作用,因为 $_SESSION['ids'] 是一个数组。
SELECT *
FROM
table
WHERE
find_in_set(id, $_SESSION['ids'])>0
您可以只使用IN
SQL 运算符。在这种情况下,您的查询将如下所示
$sql = 'SELECT * FROM table WHERE id IN ("' . implode('","', $_SESSION['ids'] . '")';
此代码将产生如下查询:
SELECT * FROM table WHERE id IN ("1", "2", "foo");
希望能帮助到你
嗨试试这个,
$var = $_SESSION['ids'];
and then fire your query as
$sql = SELECT * FROM table WHERE id = '$var';