2017-10-20 58 views
-1

我有一個簡單的MySQL查詢:獲取其他不同的ID

SELECT U.id FROM 
users U 
    INNER JOIN friends F 
     ON (U.id = F.id_exp AND F.id_des = :id_exp) 
     OR (U.id = F.id_des AND F.id_exp = :id_exp) WHERE 
U.id <> :id_des 
AND F.active = 1 

我希望再次調用此請求,它不會返回它先前已返回的ID。

我希望你能理解我。 謝謝。

+0

是否要迭代,每次從這些表中選擇隨機ID? – alseether

+0

「迭代」我想。 – kam

+1

我認爲選擇一組可能的ID的效率更高,然後用特定的語言以隨機的方式對它們進行洗牌。特別是如果你要做幾個選擇查詢(這就是爲什麼我寫了「迭代」,我想這樣做與編程語言) – alseether

回答

1

您必須給RAND一個種子編號才能始終獲得相同的訂單。這可以是任何數字,例如1:

... 
ORDER BY RAND(1) 
LIMIT @offset, 1; 
+0

我試過了: ORDER BY RAND(1) LIMIT @offset,1 但它給出了一個致命的錯誤。 – kam

+0

「致命錯誤」是一個奇怪的錯誤消息。 '@ offset'是一個變量。您必須定義它或將其替換爲一個值,例如當你要求第100個身份證時,請限制99,1。 –

相關問題