MySQL查询以排序记录,但固定特定名称并显示其余值(仅部分)随机
为此,您可以将ORDERBYRAND()与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)