有没有办法进行以下查询?它可以节省我不得不退出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
操作?
答案 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
如果这就是您想要的,请告诉我。