반응형
MySQL/MariaDB - 쿼리의 HAVING 부분 내에서 SELECT 쿼리의 필드 값을 덮어씁니다.
'필드의 할 수 ?SELECT
" " 에서"HAVING
문의의일?일 부??데이터베이스의 데이터를 터치하고 싶지 않습니다.이것은 선택 항목에서 반환되는 값일 뿐입니다.
여기 문제의 실제 쿼리가 매우 길고 복잡하기 때문에 계획된 예가 있습니다.
SELECT t.col1, t.col2, (@all_is_ok = TRUE) as all_is_ok
FROM table t
WHERE t.col1 = 'something'
HAVING (
(t.col2 = 1 AND t.col3 = 1)
OR (t.col2 = 2 AND t.col3 = 2)
OR (SET @all_is_ok = FALSE) /* If we get into this final OR in the HAVING
then I want the column all_is_ok to be set
to FALSE so that I still get the row back,
but can see that the row wasn't as expected */
)
MariaDB 10.4를 사용하고 있습니다.
그게 말이 되고 누군가가 도울 수 있기를 바랍니다.감사합니다.
모든 값이 1/2 또는 1/3인지 확인하려면 창 함수를 사용합니다.
SELECT t.col1, t.col2,
(SUM( (t.col2 = 1 AND t.col3 = 1) OR (t.col2 = 2 AND t.col3 = 2) ) OVER () =
COUNT(*) OVER ()
) as all_is_ok
FROM table t
WHERE t.col1 = 'something'
은 하다 하다에서는 수 HAVING
이렇게 SELECT
입니다.
SELECT t.col1, t.col2,
CASE
WHEN t.col2 = 1 AND t.col3 = 1 THEN 'FINE'
WHEN t.col2 = 2 AND t.col3 = 1 THEN 'FINE'
ELSE 'NOT FINE'
END AS all_is_ok
FROM table t
WHERE t.col1 = 'something'
어느 쪽이든
AND all_is_ok = 'FINE'
또는
HAVING all_is_okay = 'FINE'
둘 다 효과가 있을 거라 믿지만, 아직 검증되지 않았습니다.
언급URL : https://stackoverflow.com/questions/60866013/mysql-mariadb-overwrite-field-value-in-a-select-query-from-within-having-part
반응형
'source' 카테고리의 다른 글
javascript 자체 실행 기능의 목적은 무엇입니까? (0) | 2022.09.05 |
---|---|
MySQL 데이터베이스에 안전하게 연결하는 방법 (0) | 2022.09.05 |
Java Lombok:@AllArgsConstructor에서 필드 하나를 생략하시겠습니까? (0) | 2022.09.04 |
python/numpy를 사용하여 백분위수를 계산하는 방법은 무엇입니까? (0) | 2022.09.04 |
EC2-classic의 소스 끝점과 관련된 AWS DMS 문제 (0) | 2022.09.04 |