Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Mysql,具体订单由_Php_Mysql - Fatal编程技术网

Php Mysql,具体订单由

Php Mysql,具体订单由,php,mysql,Php,Mysql,我有这样的桌子 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,

我有这样的桌子

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 ;
我需要这样的命令

  • confirmChoice为null的第一个条目
  • confirmChoice和dateStart不为null的下一个条目
  • 所有下一个订单在dateEnd之前完成
    如何在一个查询中完成此操作?

    如果我正确理解您的需求,这可能是实现此目标的一种方法:

    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`
    

    您可能需要对其进行调整以满足您的需求。

    然后尝试按when case订购。询问是否有任何问题通过confirmChoice ASC dateEnd ASC从superTable中选择*,其中dateStart不是空的顺序,不执行您需要的操作?当然不,我需要选择所有条目,然后执行特定的顺序,以及为什么我有负号?这么简单?嘿,聪明人(设置负数)演示如何做=\n我真的很讨厌stack,因为this@Jain它应该是什么样子?“confirmChoice为空时的情况是什么?”