Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.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
订单依据适用。因此,orderby对变量赋值的处理顺序没有影响。显然,您可以通过将表引用替换为排序的子查询来实现这一点,但我在MySQL手册中没有发现任何保证这将始终有效的方法。请注意,根据,使用类似技术(基于)的查询如果在不同的环境中执行,会突然停止工作_Mysql - Fatal编程技术网

订单依据适用。因此,orderby对变量赋值的处理顺序没有影响。显然,您可以通过将表引用替换为排序的子查询来实现这一点,但我在MySQL手册中没有发现任何保证这将始终有效的方法。请注意,根据,使用类似技术(基于)的查询如果在不同的环境中执行,会突然停止工作

订单依据适用。因此,orderby对变量赋值的处理顺序没有影响。显然,您可以通过将表引用替换为排序的子查询来实现这一点,但我在MySQL手册中没有发现任何保证这将始终有效的方法。请注意,根据,使用类似技术(基于)的查询如果在不同的环境中执行,会突然停止工作,mysql,Mysql,订单依据适用。因此,orderby对变量赋值的处理顺序没有影响。显然,您可以通过将表引用替换为排序的子查询来实现这一点,但我在MySQL手册中没有发现任何保证这将始终有效的方法。请注意,根据,使用类似技术(基于)的查询如果在不同的环境中执行,会突然停止工作。让我觉得,除非我从手册中确切地知道在什么情况下我可以依赖执行顺序,否则我宁愿完全不依赖它“作为一般规则,您永远不应该为用户变量赋值并读取同一语句中的值。您可能会得到预期的结果,但这并不能保证。涉及用户变量的表达式的求值顺序未定义,并且可能会根

订单依据适用。因此,
orderby
对变量赋值的处理顺序没有影响。显然,您可以通过将表引用替换为排序的子查询来实现这一点,但我在MySQL手册中没有发现任何保证这将始终有效的方法。请注意,根据,使用类似技术(基于)的查询如果在不同的环境中执行,会突然停止工作。让我觉得,除非我从手册中确切地知道在什么情况下我可以依赖执行顺序,否则我宁愿完全不依赖它“作为一般规则,您永远不应该为用户变量赋值并读取同一语句中的值。您可能会得到预期的结果,但这并不能保证。涉及用户变量的表达式的求值顺序未定义,并且可能会根据给定语句中包含的元素而更改;此外,MySQL服务器版本之间的顺序不能保证是相同的。”因此没有任何保证。
USE 'table';  
insert into person values   
('11','xxx','1976-05-10','p1'),  
('11','xxx ','1976-06-11','p1'),  
('11','xxx ','1976-07-21','p2'),  
('11','xxx ','1976-08-31','p2'),  
SELECT PId,Name,min(Start_Date) as sdt, max(Start_Date) as edt, place 
from ** 
group by Place;
select min(sdt), edt, place
from (
  select A.Start_Date sdt, max(B.Start_Date) edt, A.place
  from person A
       inner join person B on A.place = B.place
                          and A.Start_Date <= B.Start_Date
       left join person C on A.place != C.place
                         and A.Start_Date < C.Start_Date
                         and C.Start_Date < B.Start_Date
  where C.place is null
  group by A.Start_Date, A.place
) X
group by edt, place
SELECT Id, PId,
       MIN(Start_Date) AS sdt,
       MAX(Start_Date) as edt,
       IF(`place` <> @var_place_prev, (@var_rank:= @var_rank + 1), @var_rank) AS rank,
       (@var_place_prev := `place`) AS `place`
FROM person, (SELECT @var_rank := 0, @var_place_prev := "") dummy
GROUP BY rank, Place;
SELECT Id, PId,
       MIN(Start_Date) AS sdt,
       MAX(Start_Date) as edt,
       `place`
FROM(
     SELECT Id, PId,
            Start_Date
            IF(`place` <> @var_place_prev,(@var_rank:= @var_rank + 1),@var_rank) AS rank,
            (@var_place_prev := `place`) AS `place`
     FROM person, (SELECT @var_rank := 0, @var_place_prev := "") dummy
     ORDER BY ID ASC
    ) a
GROUP BY rank, Place;