데이터 베이스 MySQL 튜토리얼 union组合结果集时的order问题

union组合结果集时的order问题

Jun 07, 2016 pm 05:59 PM
union 결과 세트

如果能确定各查询结果不会有重复的项,最好就带上all,因为这样还是可以提高一些效率的。

近日,在一个项目中用到union组合两个select结果,调试sql时总是报错,所报错误也只是说在union附近有问题,因为sql中用到了group,我想也许是union不支持吧,由于时间紧,就先在程序中做了合并处理。但程序员对于代码的完美性要求总是不能放弃的,所以,常常会有如鲠在喉的感觉,不搞明白心里会不舒服。

仔细查看了MS的在线帮助,在有关UNION的描述中找到这样一段说明:

如果使用 UNION 运算符,那么各个 SELECT 语句不能包含它们自己的 ORDER BY 或 COMPUTE 子句。而只能在最后一个 SELECT 语句的后面使用一个 ORDER BY 或 COMPUTE 子句;该子句适用于最终的组合结果集。只能在各个 SELECT 语句中指定 GROUP BY 和 HAVING 子句。

在这段说明中并没有说union不能用于group,而是说在各个Select中不能包含order by,而在我的语句中恰恰就有这个,看来是我猜错了。试了一下把order去掉,果然不会报错了。也就是说,使用union的时候,各查询group是可以的,但不能order或compute。那如果说非要group,有没有办法呢?正常情况下只能在最后使用,而且是针对组合后的结果集进行排序的,而我刚才所说的group,就不能用于最终结果集,而只能用于每个查询。

这是正常的用法,有些人想在每个查询中先排序,然后再union,也有非正常的用法,类似:

select * from (select a from [table] order by a) union ...

另外,union后面还可以加上all,在默认情况下,union时会删除重复的项,如果加上all则不进行筛选,组合所有的结果。如果能确定各查询结果不会有重复的项,最好就带上all,因为这样还是可以提高一些效率的。
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

C 언어에서 Union을 사용하는 방법 C 언어에서 Union을 사용하는 방법 Sep 27, 2023 am 11:00 AM

C 언어에서 Union을 사용하면 서로 다른 데이터 유형을 동일한 메모리 위치에 저장할 수 있는 특수 데이터 유형이 됩니다. Union을 사용하면 메모리 공간을 절약하고 서로 다른 데이터 유형 간의 변환을 용이하게 할 수 있습니다. Union을 사용할 경우 해당 멤버가 유효하며 동시에 하나의 멤버에만 접근할 수 있다는 점에 유의해야 합니다.

MySQL에서 FULL OUTER JOIN 함수를 사용하여 두 테이블의 합집합을 얻는 방법 MySQL에서 FULL OUTER JOIN 함수를 사용하여 두 테이블의 합집합을 얻는 방법 Jul 26, 2023 pm 05:45 PM

MySQL에서 FULLOUTERJOIN 함수를 사용하여 두 테이블의 통합을 얻는 방법 MySQL에서 FULLOUTERJOIN 함수는 내부 조인과 외부 조인을 결합하는 강력한 조인 작업입니다. 두 테이블의 통합, 즉 두 테이블의 모든 데이터를 단일 결과 집합으로 결합하는 데 사용할 수 있습니다. 이 기사에서는 FULLOUTERJOIN 함수의 사용법을 소개하고 독자의 이해를 돕기 위해 몇 가지 샘플 코드를 제공합니다. FULLOUTERJOIN 함수

mysql Union을 사용하여 전체 외부 조인 쿼리를 구현하는 방법 mysql Union을 사용하여 전체 외부 조인 쿼리를 구현하는 방법 May 30, 2023 pm 06:49 PM

1. Union은 다중 테이블 연결 쿼리 방식이 아닌, 여러 질의문의 질의 결과를 하나의 결과로 결합하여 중복되는 데이터를 제거하는 방식입니다. 2. 완전 외부 조인은 왼쪽 테이블과 오른쪽 테이블의 데이터를 쿼리한 후 연결 조건에 따라 연결합니다. 예시 #왼쪽 외부 Aunion 및 오른쪽 외부 Aunion 사용 BSELECT*FROMt_categorycLEFTOUTERJOINt_productpONc.cid=p.cnounionSELECT*FROMt_categorycRIGHTOUTERJOINt_productpONc.cid=p.cno

Java는 데이터 본문의 공존을 실현하기 위해 Union 클래스를 어떻게 정의합니까? Java는 데이터 본문의 공존을 실현하기 위해 Union 클래스를 어떻게 정의합니까? May 14, 2023 pm 03:34 PM

데이터 본문의 공존을 구현하기 위해 Union 클래스를 정의합니다. C/C++ 언어에서 Union이라고도 하는 Union은 구조체와 유사한 데이터 구조입니다. 구조체와 마찬가지로 공용체에는 많은 데이터 유형과 변수가 포함될 수 있습니다. 둘 사이의 차이점은 다음과 같습니다. 구조체의 모든 변수는 "공존"하며, 각 변수는 서로 다른 메모리 공간을 차지합니다. 공용체에서 각 변수는 "상호 배타적"이며 동시에 하나의 변수만 유효하며 모든 변수는 동일한 메모리 공간을 차지합니다. 여러 데이터가 메모리를 공유해야 하거나 한 번에 여러 데이터 중 하나만 가져와야 하는 경우 공용체를 사용할 수 있습니다. 자바에서

Union을 사용하여 MySQL에서 Like 문을 최적화하는 방법 Union을 사용하여 MySQL에서 Like 문을 최적화하는 방법 May 31, 2023 pm 03:55 PM

Union을 사용하여 Like 문 최적화 1) 쿼리에서 비교를 위해 or 연산자를 사용해야 하는 경우가 있습니다. where 절에서 or 키워드가 너무 자주 사용되면 MySQL 최적화 프로그램이 실수로 레코드를 검색하기 위해 전체 테이블 스캔을 선택하게 될 수 있습니다. Union 절을 사용하면 특히 쿼리 중 하나에 최적화된 인덱스가 있고 다른 쿼리에도 최적화된 인덱스가 있는 경우 쿼리 실행 속도가 빨라집니다. 예를 들어 각각 first_name과 last_name에 인덱스가 있는 경우 다음 쿼리 문을 실행합니다. mysql>select*fromstudentswherefirst_namelike'A

성능 향상을 위해 MySQL을 통해 UNION을 최적화하는 방법 성능 향상을 위해 MySQL을 통해 UNION을 최적화하는 방법 May 11, 2023 pm 05:40 PM

많은 데이터베이스 애플리케이션에서 우리는 여러 데이터 소스의 데이터를 통합해야 하는 상황에 직면합니다. MySQL의 UNION 문은 이러한 상황을 해결하는 방법으로, 두 개 이상의 SELECT 문의 결과 집합을 하나로 병합할 수 있습니다. 이는 매우 편리한 기능이지만 UNION 문은 최적화되지 않은 경우 시스템에서 성능 문제를 일으킬 수도 있습니다. 이 기사에서는 UNION을 최적화하여 MySQL을 통해 성능을 향상시키는 방법을 살펴보겠습니다. U를 사용하는 동안 UNIONALL을 사용하세요.

Jul 24, 2023 pm 08:12 PM

PHP 함수 "mysqli_fetch_assoc"을 사용하여 결과 집합에서 행을 연관 배열로 가져오기 PHP에서 데이터베이스와 상호 작용하는 것은 일반적인 작업입니다. SELECT 쿼리를 실행하고 결과 세트를 얻을 때 일반적으로 추가 처리를 위해 결과 세트의 데이터를 PHP 배열에 저장해야 합니다. PHP는 결과 집합을 처리하는 여러 함수를 제공하며 일반적으로 사용되는 함수 중 하나는 "mysqli_fetch_assoc"입니다. 이 함수는 결과 집합에서 행을 가져옵니다.

mysql에서 Union을 사용할 때 주의할 점은 무엇인가요? mysql에서 Union을 사용할 때 주의할 점은 무엇인가요? Jun 03, 2023 pm 08:04 PM

1. 통합 연산자는 두 개 이상의 select 문의 결과를 결과 집합으로 결합하는 데 사용됩니다. 다중 선택 문은 중복 데이터를 삭제합니다. 2. Union을 사용하여 결과 집합을 병합하는 경우 두 결과 집합의 열 수가 동일해야 합니다. 예selectplayerno,townfromPLAYERSwheretown='잉글우드' Unionselectplayerno,townfromPLAYERSwheretown='플리머스';

See all articles