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