我從“publisher1”查詢 50 篇文章,然后從“publisher2”查詢 50 篇文章。我結合結果回傳 100 篇文章。
我嘗試組合查詢以同時回傳結果但沒有成功。合并將提高性能,因為它們每個都需要 150 毫秒。如何將兩個查詢合并為一個,還是我必須單獨查詢?
// Query 1
SELECT * FROM news WHERE (MATCH(snippet) AGAINST('politics' IN BOOLEAN MODE)) AND (publisher = 'publisher1') ORDER BY datePublished DESC LIMIT 50
// Query 2
SELECT * FROM news WHERE (MATCH(snippet) AGAINST('politics' IN BOOLEAN MODE)) AND (publisher = 'publisher2') ORDER BY datePublished DESC LIMIT 50
我試過了 :
SELECT * FROM news WHERE (MATCH(snippet) AGAINST('politics' IN BOOLEAN MODE)) AND (publisher = 'publisher1') ORDER BY datePublished DESC LIMIT 50 AND SELECT * FROM news WHERE (MATCH(snippet) AGAINST('politics' IN BOOLEAN MODE)) AND (publisher = 'publisher2') ORDER BY datePublished DESC LIMIT 50
uj5u.com熱心網友回復:
“如何將兩個查詢合并為一個……? ”
使用UNION:
(SELECT * FROM news WHERE (MATCH(snippet) AGAINST('politics' IN BOOLEAN MODE)) AND (publisher = 'publisher1') ORDER BY datePublished DESC LIMIT 50)
UNION
(SELECT * FROM news WHERE (MATCH(snippet) AGAINST('politics' IN BOOLEAN MODE)) AND (publisher = 'publisher2') ORDER BY datePublished DESC LIMIT 50);
或者 :
(SELECT * FROM news WHERE (MATCH(snippet) AGAINST('politics' IN BOOLEAN MODE)) AND (publisher = 'publisher1') LIMIT 50)
UNION
(SELECT * FROM news WHERE (MATCH(snippet) AGAINST('politics' IN BOOLEAN MODE)) AND (publisher = 'publisher2') LIMIT 50)
ORDER BY datePublished DESC;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/530319.html
標籤:mysqlsql
上一篇:如何在postgresql程序中的INSERT陳述句中從具有索引的陣列中獲取值?
下一篇:SQLorderby然后替換
