【问题标题】:Select a random row from a db从数据库中选择一个随机行
【发布时间】:2013-01-12 14:30:46
【问题描述】:

我正在寻找一种解决方案,它可以从 hsql db 返回随机行。

CREATE TABLE Playlist(
    id INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
);

有什么想法吗?

更新:

SELECT LIMIT 0 1 RAND(), p.name as foo
From Playlist p
ORDER BY foo

通过此语句,我得到一个随机数,但不是随机播放列表名称。

【问题讨论】:

  • 哪个 RDBMS?你试过什么?
  • 我可以取回一个随机数,但不能取回随机元素...
  • 请把它写成答案,这样我就可以排除它了。谢谢你的解决方案!!!
  • 写在下面@PeterWooster :D

标签: sql database hsqldb


【解决方案1】:

你应该去How to request a random row in SQL?

它涵盖了很多关于如何做你需要做的事情的选项。

SELECT p.name as foo
From Playlist p
ORDER BY RAND() LIMIT 1

如果您使用 Oracle,则需要使用 Rownum 而不是 limit 的子选择。见How do I limit the number of rows returned by an Oracle query after ordering?

【讨论】:

  • 感谢@bonCodigo,请注意,限制在 MySQL 中运行良好,但在 oracle 中不行,它变得更加丑陋。
  • 忘记添加链接了.. ;) viralpatel.net/blogs/…
猜你喜欢
  • 2014-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
相关资源
最近更新 更多