使用PHP,是否可以從一個表中選擇多個行,在MySQL數據庫中,使用不同的WHERE子句對每個WHERE子句都有一個特定的LIMIT子句。多個WHERE與限制MySQL
例如:
SELECT * FROM the_table WHERE color = 'blue' LIMIT 5 OR color = 'red' LIMIT 10
我知道上面的說法是行不通的。但是有沒有辦法通過一次調用數據庫來實現這一點?
使用PHP,是否可以從一個表中選擇多個行,在MySQL數據庫中,使用不同的WHERE子句對每個WHERE子句都有一個特定的LIMIT子句。多個WHERE與限制MySQL
例如:
SELECT * FROM the_table WHERE color = 'blue' LIMIT 5 OR color = 'red' LIMIT 10
我知道上面的說法是行不通的。但是有沒有辦法通過一次調用數據庫來實現這一點?
您可以使用UNION,如果我正確地理解你的信息:
(SELECT * FROM the_table WHERE color = 'blue' LIMIT 5)
UNION ALL
(SELECT * FROM the_table WHERE color = 'red' LIMIT 10)
SELECT * FROM the_table WHERE color = 'blue' LIMIT 5
UNION
SELECT * FROM the_table WHERE color = 'red' LIMIT 10 ;
如果沒有()分隔查詢,則不能運行,LIMIT 10將應用於結果 – radius 2010-06-27 17:29:31
我相信flow control in MySQL是你在找什麼。
查看有關子查詢的官方MySQL文檔(這裏有對LIMIT的參考,以及它們可能無效的一些情況):http://dev.mysql.com/doc/refman/5.5/en/subquery-restrictions.html - 您可能會在其中找到使用子查詢的優化,但UNION是可能相當快,可能會自動優化。
你期望什麼結果? – Gumbo 2010-06-27 17:26:17