在SQL中选择随机值

时间:2015-09-07 16:47:47

标签: mysql sql

有没有办法进行以下查询?它可以节省我不得不退出SQL来进行查询的后处理:

SELECT date, RANDOM('CA', 'DE', 'AZ') FROM table LIMIT 3

结果如下:

2014-01-01,"CA"
2014-01-02,"CA"
2014-01-03,"DE"

有没有办法在SQL中执行RANDOM操作?

3 个答案:

答案 0 :(得分:2)

使用UNION ALL获取表/子查询的值集,按RAND()排序并返回1值:

<强> SqlFiddleDemo

SELECT id,
       (SELECT 'CA' AS 'col'
        UNION ALL
        SELECT 'DE'
        UNION ALL
        SELECT'CZ'
        ORDER BY RAND() LIMIT 1) AS Random
FROM tab
LIMIT 3

或使用:

<强> SqlFiddleDemo_2

SELECT id,
      ELT(FIELD(CEILING(RAND()*3), 1, 2, 3),'CA','CZ', 'DE') AS Rand
FROM tab
LIMIT 3

答案 1 :(得分:1)

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('CA,DE,AZ',',',CEILING(RAND()*3)),',',-1);

或类似的东西

答案 2 :(得分:0)

如果你想选择随机字符串

,一种方法就是这样
$digest

如果这就是您想要的,请告诉我。