mysql - 在 MySQL 中生成一个随机顺序的整数序列

标签 mysql

在MYSQL中有没有其他方法可以随机生成sequence_no??? 我有一张表:验证码

SET @a:= 1;
SELECT @a:=@a+1 as sequence_no,captcha_id, captcha_name
FROM captcha,(SELECT @a:= 0) AS a
ORDER BY RAND()

我的预期输出:

sequence_no | captcha_id | captcha_name 
----------------------------------------
01          | 11         | name1
02          | 06         | name2

我的查询输出:

sequence_no | captcha_id | captcha_name
---------------------------------------- 
11           | 11          | name1
06           | 06          | name2

最佳答案

为此,您首先需要在 Derived Table 中执行显式随机排序.然后,使用子查询结果,设置一个序列号(对于随机排序的行):

SET @a:= 0;
SELECT @a:=@a+1 as sequence_no,
       dt.captcha_id, 
       dt.captcha_name 
FROM (
       SELECT captcha_id, captcha_name 
       FROM captcha 
       ORDER BY RAND()
     ) AS dt

关于mysql - 在 MySQL 中生成一个随机顺序的整数序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57092253/

相关文章:

MySQL 乘法输出和 Perl DBI

mysql - 创建具有双主外键关系的表时如何修复 "java.sql.SQLException: Cannot add foreign key constraint."

mysql - 查询返回零结果

mysql - mysql对特定列排序后分页的问题

PHP, MySQL 更新多列

mysql - 请使用 JavaFX MySQL 连接示例

php - mysql 事件调度是合适的(或最佳的)解决方案吗?

php - 社交网站的数据库关系或 friend 表设计

c++ - 找到但未加载 MYSQL 驱动程序

mysql - mysql 查询语法有问题?试图从 INNER JOIN 中插入