我有一個ID列表的表。我使用查詢來選擇它,然後將其作爲數組獲取(我知道如何做到這一點)。然後,我想從其他表中的ID中選擇更早獲取的數組中的行。從MySQL表中選擇行的值是數組?
我該怎麼做?提前致謝。
我有一個ID列表的表。我使用查詢來選擇它,然後將其作爲數組獲取(我知道如何做到這一點)。然後,我想從其他表中的ID中選擇更早獲取的數組中的行。從MySQL表中選擇行的值是數組?
我該怎麼做?提前致謝。
你很可能想要做一個WHERE field IN (...)
類型的查詢。對於IN
條款中列出的每個值,本質上相當於WHERE field=X or field=Y or field=Z or ...
。
既然你已經有了一個ID陣列已經,最簡單的方法就是建立這樣的查詢:
$where_in = implode(',', $ids_array);
$query = "SELECT ... FROM yourtable WHERE idfield IN ($where_in);";
通常附帶條件適用 - 小心SQL注入漏洞,經常檢查查詢結果爲失敗等...
不應該是'$ query =「SELECT ... FROM yourtable WHERE idfield IN(」。$ where_in。「)」;'? – ProblemsOfSumit 2013-10-24 13:44:46
編號學習基本的PHP語法:http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.double – 2013-10-24 15:02:35
select value1,value2 from table2 where id in (1,2,3,4,5)
你可以這樣做在一個查詢
像這樣 SELECT table2.id FROM table2 WHERE table2.id IN (SELECT table1.id FROM table1 WHERE blablabla)
假設$values
是數組,你可以使用MySQL的IN關鍵字和PHP破滅函數來構造查詢
$sql = "SELECT a, b FROM table WHERE id IN (" . implode(", ",$values) . ")";
implode將加入數組元素使用「,」
的意思是...... – 2011-03-29 05:20:52
你在找什麼? – Gowri 2011-03-29 05:22:41