我有这样的表
CREATE TABLE IF NOT EXISTS `superTable` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`lotID` bigint(20) NOT NULL,
`characterID` bigint(20) NOT NULL,
`confirmChoice` varchar(255) DEFAULT NULL,
`confirmStatus` varchar(255) DEFAULT NULL,
`dateCreate` datetime DEFAULT NULL,
`dateStart` datetime DEFAULT NULL,
`dateEnd` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ;
我需要这样的订单
我如何在一个查询中执行此操作?
答案 0 :(得分:1)
如果我理解你的要求,这可能是实现它的一种方式:
SELECT
*
,CASE
WHEN (`confirmChoice` IS NULL) THEN '1'
WHEN (`confirmChoice` IS NOT NULL AND `dateStart` IS NOT NULL ) THEN '2'
ELSE '3'
END AS sort_order
FROM
`supertable`
WHERE
1
ORDER BY
sort_order
,`dateEnd`
您可能需要调整它以满足您的要求。