订单依据适用。因此,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;