通过标识符从随机列表中获取特定行

时间:2018-07-10 12:53:12

标签: mysql

我有一个简单的表:

 ID | name
============
  1 | Foo
  2 | Bar
  3 | Loo
  4 | Zoo
  5 | Car

要获得一个随机行,我可以使用RAND()

SELECT * FROM TABLE ORDER BY RAND() LIMIT 1

现在,我想选择一个带有“标识符”的随机条目,这有助于我获得始终相同的结果。

这里有一些例子可以更好地解释我的需求:

标识符= 9876

SELECT * FROM TABLE ORDER BY ??? = "9876" LIMIT 1
// result 

  ID | name
============
  5  | Car  

标识符= 363

SELECT * FROM TABLE ORDER BY ??? = "363" LIMIT 1
// result 

  ID | name
============
  3  | Loo 

标识符= 13537

SELECT * FROM TABLE ORDER BY ??? = "13537" LIMIT 1
// result 

  ID | name
============
  3  | Loo   

如您所见,即使标识符不同,最后两个结果也是相同的。

要求/前提条件:

  • 标识符是一个正整数。
  • 它应该总是返回一行
  • 如果表中有新条目,则结果可能会不同。

我在order子句中与(FLOOR(1+RAND(table.ID)*100 )) = $identifier一起玩,但是没有得到想要的结果。

0 个答案:

没有答案