根据特定名称对记录进行排序,并显示其余值(仅部分)的随机 MySQL 查询


为此,您可以将 ORDER BY RAND() 与 LIMIT 结合使用。我们先创建一个 -

mysql> create table DemoTable1426
   -> (
   -> FirstName varchar(20)
   -> );
Query OK, 0 rows affected (0.59 sec)

使用 insert 在表中插入一些记录 -

mysql> insert into DemoTable1426 values('John');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable1426 values('Adam');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1426 values('Robert');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1426 values('David');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1426 values('Sam');
Query OK, 1 row affected (0.13 sec)

使用 select 从表中显示所有记录 -

mysql> select * from DemoTable1426;

这将产生以下输出 -

+-----------+
| FirstName |
+-----------+
| John      |
| Adam      |
| Robert    |
| David     |
| Sam       |
+-----------+
5 rows in set (0.00 sec)

以下是用于对记录进行排序,但修复特定名称并显示其余(仅部分)随机值 的查询 -

mysql> select * from DemoTable1426 order by (FirstName='Robert') desc,RAND()
   -> limit 3;

这将产生以下输出 -

+-----------+
| FirstName |
+-----------+
| Robert    |
| Adam      |
| David     |
+-----------+
3 rows in set (0.52 sec)

上次更新:2019 年 11 月 12 日

73 次浏览

开启你的 事业

完成课程并获得认证

开始
广告