MySQL查询以排序记录,但固定特定名称并显示其余值(仅部分)随机

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

create table DemoTable1426
   -> (
   -> FirstName varchar(20)
   -> );

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

insert into DemoTable1426 values('John');
insert into DemoTable1426 values('Adam');
insert into DemoTable1426 values('Robert');
insert into DemoTable1426 values('David');
insert into DemoTable1426 values('Sam');

使用选择显示表中的所有记录-

select * from DemoTable1426;

这将产生以下输出-

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

以下是查询记录的命令,但要确定一个特定的名称并显示其余的值(仅某些)(随机)-

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

这将产生以下输出-

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