2011-03-12 248 views
0

我正在寫一個查詢,我正在尋找從數據庫中拉出相關領域10行的限制。MYSQL查詢相關查詢

該查詢很容易編寫,但我想知道是否有一種方法來編寫查詢,以便它搜索相關的項目,並首先將它們拉出來,如果這些項目只是爲剩餘的項目拉取隨機字段。

下面是我用拉的相關行

查詢
SELECT * FROM table WHERE term LIKE '%term1%' or term LIKE '%term2%' LIMIT 0,10 
+0

我的想法,可以工作,我想:用隨機10聯合選擇10,然後將結果限制爲10 – 2011-03-12 01:00:14

+0

爲了澄清,如果給定的兩個搜索條件產生小於10分的結果,要填充隨機非重複行的結果集? – JYelton 2011-03-12 01:00:58

+0

JYelton – Dave 2011-03-12 01:02:24

回答

1

你只需要通過你正在尋找第一個條件,這樣做是如下的一種方式訂購表:

SELECT * FROM table 

ORDER BY (
    (
    CASE WHEN term LIKE '%term1%' 
    THEN 1 
    ELSE 0 
    END 
) + (
    CASE WHEN term LIKE '%term2%' 
    THEN 1 
    ELSE 0 
    END 
) 
) DESC 
LIMIT 0,10 
+0

@Dave如果回答你的問題,接受答案被認爲是禮貌的。 – 2011-03-16 06:21:42