MySQL은 조건이 충족되면 쿼리를 반복하지 않고 쿼리 결과를 반환합니다.

JP P.

내가 기본적인 것을 가지고 있다고 가정 해 봅시다.

SELECT IF( (1 + 2) >=0, (1 + 2), 0)
FROM DUAL

분명히 3을 반환합니다.

반환하려는 쿼리 (여기서는 1 + 2)를 반복하지 않는 방법이 있습니까?

맥락을 들어 보면 이번 달에해야 할 일의 개수를 반환하고 싶지만 (최소 4 개는 완료해야 함), 이미 4 개 이상을 완료했다면 더 이상 할 필요가 없으므로 반환하고 싶습니다. 0.

내가 한 것은

IF((4 - IFNULL((LONG QUERY RETURNING THE NUMBER OF TASKS DONE THIS MONTH FOR A PARTICULAR USER ),0)) >= 0,
(4 - IFNULL((LONG QUERY RETURNING THE NUMBER OF TASKS DONE THIS MONTH FOR A PARTICULAR USER ), 
0)

그러나 쿼리가 길고 서버가 동일한 쿼리를 두 번 실행하지 않기를 원하기 때문에 쿼리를 반복하지 않는 방법이 있습니까?

실뱅 르루

요청에 따라 사용자 정의 변수 를 사용할 수 있습니다 .

SELECT 1+2 INTO @tmp;
SELECT IF( @tmp >=0, @tmp, 0)

또는 하나의 라이너 를 좋아한다면

SELECT IF( (@tmp := (1+2)) >=0, @tmp, 0)
--         ^             ^
--        don't forget those parenthesis !

편집 : "테이블 선택"문에서도 작동합니다.

CREATE TABLE tbl AS SELECT 1 as a UNION SELECT 2;
SELECT SUM(a) FROM tbl INTO @tmp;
SELECT IF ( @tmp > 0, @tmp, 0);

위 쿼리 실행 계획대해 http://sqlfiddle.com/#!2/37c33/1보면 두 번째 는 테이블을 사용하지 않는 것을 볼 수 있습니다 .SELECT


BTW, 실제 예제를 사용하면 다음과 같이 작성되었을 수 있습니다.

SELECT MAX( (1+2), 0 )
--          ^^^^^ here your expression

...하지만 이것이 실제 쿼리 의 속성 아니라고 생각 합니까?

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

MySQL-다른 쿼리 조건이 결과를 반환하지 않는 경우에만 트리거되는 쿼리 조건

분류에서Dev

MySQL 데이터 조작 쿼리가 결과를 반환하지 않습니까?

분류에서Dev

PHP MySql 쿼리가 결과를 반환하지 않습니다.

분류에서Dev

MySQL : 다른 쿼리 결과를 쿼리하고 두 결과를 모두 반환합니까?

분류에서Dev

SQL은 지정되지 않은 필드 값의 레코드를 반환하는 쿼리를 조인합니다.

분류에서Dev

MySQL은 select * where varchar = ""쿼리에서 결과를 반환하지 않습니다.

분류에서Dev

MySQL : 하위 쿼리의 결과를 계산하고 반환되는 집합을 계속 사용합니다.

분류에서Dev

SQL 쿼리에서 조건이 충족되면 처음 3 자에 ***를 사용하여 필드 결과를 표시합니다.

분류에서Dev

절이 충족되지 않은 경우 결과를 표시하는 SQL 쿼리가 0과 같음

분류에서Dev

쿼리가 원하지 않는 결과를 반환합니다.

분류에서Dev

TaffyDB 쿼리에서 JS 변수를 사용하면 정의되지 않은 결과가 반환됩니다.

분류에서Dev

MySQL 쿼리가 필요한 결과를 반환하지 않습니다. 주문이없는 고객은 표시하지 않습니다.

분류에서Dev

SQL 쿼리에서 관련되지 않은 여러 결과를 반환하는 방법이 있습니까?

분류에서Dev

MongoDB-메타 데이터로 GridFS를 쿼리하면 결과가 반환되지 않습니다.

분류에서Dev

조건이 충족되지 않으면 True를 반환하는 dataframe.all ()

분류에서Dev

Rails Association은 Postgres 쿼리를 실행하지 않고 Nil을 반환합니다.

분류에서Dev

조인이있는 mysql 쿼리가 결과를 반복합니다.

분류에서Dev

mySQL 쿼리가 예상 결과를 반환하지 않습니다.

분류에서Dev

MySQL 쿼리가 예상 결과를 반환하지 않음

분류에서Dev

MySQL 쿼리가 결과를 반환하지 않음

분류에서Dev

결과를 반환하지 않는 MySQL 쿼리 준비 문

분류에서Dev

결과를 반환하지 않는 MySQL 쿼리

분류에서Dev

MySQL 쿼리가 PDO로 결과를 반환하지 않음

분류에서Dev

내 결과를 반환하지 않는 MySQL 쿼리

분류에서Dev

Sails js findOne ()은 모든 기준이 충족되지 않아도 결과를 반환합니다.

분류에서Dev

비동기 쿼리를 실행하고 완료되면 결과를 반환합니다.

분류에서Dev

쿼리 Hibernate 또는 HQL이 결과를 반환하지 않음

분류에서Dev

오류없이 결과를 반환하지 않는 SQL 쿼리

분류에서Dev

MySQL은 PHP 쿼리 결과를 출력하지 않습니다.

Related 관련 기사

  1. 1

    MySQL-다른 쿼리 조건이 결과를 반환하지 않는 경우에만 트리거되는 쿼리 조건

  2. 2

    MySQL 데이터 조작 쿼리가 결과를 반환하지 않습니까?

  3. 3

    PHP MySql 쿼리가 결과를 반환하지 않습니다.

  4. 4

    MySQL : 다른 쿼리 결과를 쿼리하고 두 결과를 모두 반환합니까?

  5. 5

    SQL은 지정되지 않은 필드 값의 레코드를 반환하는 쿼리를 조인합니다.

  6. 6

    MySQL은 select * where varchar = ""쿼리에서 결과를 반환하지 않습니다.

  7. 7

    MySQL : 하위 쿼리의 결과를 계산하고 반환되는 집합을 계속 사용합니다.

  8. 8

    SQL 쿼리에서 조건이 충족되면 처음 3 자에 ***를 사용하여 필드 결과를 표시합니다.

  9. 9

    절이 충족되지 않은 경우 결과를 표시하는 SQL 쿼리가 0과 같음

  10. 10

    쿼리가 원하지 않는 결과를 반환합니다.

  11. 11

    TaffyDB 쿼리에서 JS 변수를 사용하면 정의되지 않은 결과가 반환됩니다.

  12. 12

    MySQL 쿼리가 필요한 결과를 반환하지 않습니다. 주문이없는 고객은 표시하지 않습니다.

  13. 13

    SQL 쿼리에서 관련되지 않은 여러 결과를 반환하는 방법이 있습니까?

  14. 14

    MongoDB-메타 데이터로 GridFS를 쿼리하면 결과가 반환되지 않습니다.

  15. 15

    조건이 충족되지 않으면 True를 반환하는 dataframe.all ()

  16. 16

    Rails Association은 Postgres 쿼리를 실행하지 않고 Nil을 반환합니다.

  17. 17

    조인이있는 mysql 쿼리가 결과를 반복합니다.

  18. 18

    mySQL 쿼리가 예상 결과를 반환하지 않습니다.

  19. 19

    MySQL 쿼리가 예상 결과를 반환하지 않음

  20. 20

    MySQL 쿼리가 결과를 반환하지 않음

  21. 21

    결과를 반환하지 않는 MySQL 쿼리 준비 문

  22. 22

    결과를 반환하지 않는 MySQL 쿼리

  23. 23

    MySQL 쿼리가 PDO로 결과를 반환하지 않음

  24. 24

    내 결과를 반환하지 않는 MySQL 쿼리

  25. 25

    Sails js findOne ()은 모든 기준이 충족되지 않아도 결과를 반환합니다.

  26. 26

    비동기 쿼리를 실행하고 완료되면 결과를 반환합니다.

  27. 27

    쿼리 Hibernate 또는 HQL이 결과를 반환하지 않음

  28. 28

    오류없이 결과를 반환하지 않는 SQL 쿼리

  29. 29

    MySQL은 PHP 쿼리 결과를 출력하지 않습니다.

뜨겁다태그

보관