使用mysql查询随机选择列

时间:2012-12-18 13:18:44

标签: mysql

我需要使用php实现一个问题答案表单,我需要选择问题以及选项值。选项值应该是随机的。

等等 从Questtable中选择quest,option1,option2,option3; 如何以随机顺序为每个请求获取option1,option2,option3,我们可以使用mysql实现任何方式。 ?

4 个答案:

答案 0 :(得分:1)

您可以使用RAND()

SELECT * FROM table_name ORDER BY RAND() LIMIT 5

答案 1 :(得分:0)

使用MySQL查询执行此操作是不可能的,但您可以使php随机化输出。 将选项写入空数组,然后随机化数组。

如果您喜欢使用MySQL,您必须制作2个表,一个包含问题,一个包含答案,每行一个答案。

然后你可以这样做:

SELECT option FROM tbl_answers WHERE questionId = X ORDER BY RAND()

答案 2 :(得分:0)

没有。仅使用mysql

是不可能的

你可以通过php

进行SELECT quest,option1,option2,option3和随机播放

答案 3 :(得分:0)

虽然您应该如上所述更改您的桌面设计,但您可以尝试这种非常粗糙的桌面设计(但原始设计会导致原始解决方案)

SELECT
  quest,
  CASE rval WHEN 0 THEN option1 WHEN 1 THEN option2 WHEN 2 THEN option3 END option_1,
  CASE rval WHEN 0 THEN option2 WHEN 1 THEN option3 WHEN 2 THEN option1 END option_2,
  CASE rval WHEN 0 THEN option3 WHEN 1 THEN option1 WHEN 2 THEN option2 END option_3
FROM (
SELECT
  *,
  FLOOR( RAND() * 3 ) rval
FROM tbl_answers ) tmp

请:“不要在家里这样做!