2017-10-20 118 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。 –

相关问题