我有一個包含一個數組的會話,並且該數組填充了id。從MySQL表中選擇與這些ID相對應的所有行的最佳方式是什麼?從MySQL表中選擇多行
所以,我需要這樣的東西:
SELECT * FROM table WHERE id = $_SESSION['ids']
很顯然,這是行不通的,因爲$ _SESSION [ 'IDS']是一個數組。
我有一個包含一個數組的會話,並且該數組填充了id。從MySQL表中選擇與這些ID相對應的所有行的最佳方式是什麼?從MySQL表中選擇多行
所以,我需要這樣的東西:
SELECT * FROM table WHERE id = $_SESSION['ids']
很顯然,這是行不通的,因爲$ _SESSION [ 'IDS']是一個數組。
你可以使用SQL IN
操作。 在這種情況下,您的查詢將看起來像
$sql = 'SELECT * FROM table WHERE id IN ("' . implode('","', $_SESSION['ids'] . '")';
此代碼將produse查詢類似以下內容:
SELECT * FROM table WHERE id IN ("1", "2", "foo");
希望它可以幫助
如何用PDO做到這一點? – mandza
HI試試這個,
$var = $_SESSION['ids'];
and then fire your query as
$sql = SELECT * FROM table WHERE id = '$var';
SELECT *
FROM
table
WHERE
find_in_set(id, $_SESSION['ids'])>0
你將不得不使用'IN()'的MySQL語法和循環通過你的ID到'IN()' – MonkeyZeus
重複:http://stackoverflow.com/questions/9476146/mysql-php-select-where-id-array – cptnk
爲IN使用數組,你首先需要打破字符串。對於find_in_set,這將不是必需的 – AdrianBR