WHERE 절에서 MySQL 임시 변수를 사용할 수 있습니까?
P粉798343415
P粉798343415 2023-10-24 10:37:42
0
2
591

MySQL에서는 WHERE절에 임시 변수를 사용할 수 있나요?

예를 들어 다음 쿼리에서는:

으아악

@var가 `id` 값의 두 배로 성공적으로 설정되었습니다

그러나 @var가 10보다 작은 결과만 포함하도록 결과 집합을 필터링하려고 하면 다음과 같습니다.

으아악

그러고 보니 아무런 결과도 나오지 않았습니다.

@var 값을 기준으로 결과를 필터링하는 방법은 무엇입니까?

P粉798343415
P粉798343415

모든 응답(2)
P粉760675452

Q: MySQL 임시 변수를 WHERE 절에 사용할 수 있나요?

네. MySQL 사용자 정의 변수(예: @var)는 WHERE 절에서 참조될 수 있습니다.

사용자 정의 변수는 표현식이 평가될 때 현재 할당된 모든 값에 대한 참조입니다.

쿼리에서 WHERE 절의 조건자는 SELECT 목록의 표현식보다 먼저 평가됩니다.

즉, 행에 액세스하면 @var 이 각 후보 행에 대해 부울 표현식으로 평가되고, 표현식이 평가되어 결과가 TRUE인 경우에만 행이 반환됩니다.

이 변수에 10보다 크거나 같은 숫자 값을 지정하면 명령문을 실행하기 전에 모든 행이 반환됩니다.

Q: @var 값을 기준으로 결과를 필터링하는 방법은 무엇입니까?

정말 그럴 수 없어요. (실제로 원래 쿼리가 수행하는 작업이 바로 이것이었습니다.)

@var 之外的其他表达式中包含谓词;这些表达式可以从分配给 @var 이외의 표현식에 술어를 포함할 수 있습니다. 이러한 표현식은

에 할당된 값에서 파생될 수 있습니다.

HAVING 子句来过滤返回的行。 (注意:HAVING 子句在结果集准备好之后进行计算;与 WHERE옵션으로 SELECT 목록에서 표현식을 반환한 다음 행에 액세스할 때 평가하는 다른

절을 사용할 수 있습니다. )

또 다른 옵션은 인라인 뷰를 사용하여 결과 집합을 준비한 다음 외부 쿼리에서 반환된 표현식에 WHERE 절을 사용할 수 있는 것입니다.

@var 以外的表达式应用谓词;他们实际上并没有对 @var그러나 엄밀히 말하면 이러한 방법은 모두

이외의 표현에 술어를 적용하며 실제로 🎜의 값에 대해 테스트하지 않습니다. 🎜
P粉530519234

별칭을 할당하고 HAVING절에서 테스트해야 합니다.

으아아아

한 행에서 다음 행으로 내부 결과를 전달하는 대신 수식을 사용하여 필터링하는 경우에는 이 변수가 전혀 필요하지 않습니다. 다음과 같이 쓸 수 있습니다:

으아아아
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿