mysql按具有两个不同值的记录对行进行排序
我有值等于1或2的记录,我想按此记录对行进行排序,如下所示mysql按具有两个不同值的记录对行进行排序,mysql,Mysql,我有值等于1或2的记录,我想按此记录对行进行排序,如下所示 1 2 1 2 1 2 1 我如何仅通过DESC或ASC的订单来完成此订单 注意:有一个主键id,还有一个创建日期 CREATE TABLE `users` ( `uid` INT(11) NOT NULL AUTO_INCREMENT, `phone_number` VARCHAR(16) NOT NULL, `password` VARCHAR(100) NOT NULL, `first_name`
1
2
1
2
1
2
1
我如何仅通过DESC或ASC的订单来完成此订单
注意:有一个主键id,还有一个创建日期
CREATE TABLE `users` (
`uid` INT(11) NOT NULL AUTO_INCREMENT,
`phone_number` VARCHAR(16) NOT NULL,
`password` VARCHAR(100) NOT NULL,
`first_name` VARCHAR(100) NOT NULL,
`last_name` VARCHAR(100) NOT NULL,
`sex` TINYINT(4) NOT NULL, << this will have only 1 or 2
`created_date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`account_status` TINYINT(1) NOT NULL,
PRIMARY KEY (`uid`)
);
希望这能对你有所帮助
SELECT t.*
FROM (
SELECT STRAIGHT_JOIN uid, first_name ,
@y:=IF(@sex=sex,@y+1,1) AS rnk, @sex:=sex AS sex
FROM (SELECT @sex:=NULL) AS x
JOIN users
ORDER BY sex, uid DESC
) AS t
ORDER BY rnk ASC, sex ASC;
@iMyth和value?你希望ASC/DESC按哪个列?sex TINYINT4不为空,我希望按照我在问题中提到的顺序。你的意思是,即使在数据库中,前5条记录有1,另5条记录有2,你希望它是1,2,1,2,1,1,2,2。。是吗?是的,但不是前5条记录性别值将随机为1或2,其他什么都没有,我需要像这样选择它们1,2,1,2,1,2你太接近了,但这种>的结果与你最初的评论不符。你认为优化器为什么会出错?哦,你从来没有被初始化过?!?