【发布时间】:2013-04-18 08:29:08
【问题描述】:
我正在为我管理的 PtokaX DC 集线器上的用户开发一个小型拼字游戏。为此,我将单词列表存储在 MySQL 表中。表架构如下:
CREATE TABLE `jumblewords` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`word` CHAR(15) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `word` (`word`)
)
COMMENT='List of words to be used for jumble game.'
COLLATE='utf8_general_ci'
ENGINE=MyISAM;
现在,在游戏引擎中;我想随机获取 20 个单词作为字符串。我可以通过类似这样的查询来实现:
SELECT GROUP_CONCAT(f.word SEPARATOR ', ' )
FROM ( SELECT j.word AS word
FROM jumblewords j
ORDER BY RAND()
LIMIT 20) f
但每次列表到期时我都必须执行此语句(所有 20 个单词都已放在用户之前)。
我可以修改此查询,以便我可以使用上面查询生成的结果获取多行吗?
【问题讨论】:
-
好问题!我假设,这些词需要在一行中是唯一的,但可以在各行中重复,对吧?
-
您可以在单词完成后将限制更改为 20、40,以便从池中选择下一组单词,依此类推...
-
@ArunKillu 如果我要再次执行该语句,我不需要使用
OFFSET。ORDER BY RAND()会自动为我随机选择单词。
标签: mysql group-concat limits ptokax