>  Q&A  >  본문

동일한 열에 여러 WHERE 조건을 사용하여 선택

<p>알겠습니다. 여기서 명백하고 간단한 점을 간과하고 있는 것 같습니다... 하지만 동일한 열에서 여러 기준과 일치하는 레코드만 반환하는 쿼리를 작성해야 합니다... </ p> <p>내 테이블은 사용자에게 플래그를 적용하기 위한 매우 간단한 링크 설정입니다...</p> <pre class="brush:php;toolbar:false;">ID 연락처 ID 플래그 flag_type ---------------------------------- 118 99 자원봉사자 1 119 99 업로드 2 120 100 수입 3을 통해 121 100 자원봉사자 1 122 100 업로드됨 2</pre> <p>잠깐... 이 경우 연락처 99번과 100번이 모두 "자원봉사자"와 "업로드됨"으로 표시되어 있는 것을 볼 수 있습니다...</p> <p>제가 해야 할 일은 검색 양식을 통해 입력된 여러 기준과 일치하는 연락처 ID를 반환하는 것뿐입니다... 연락처 ID는 선택한 모든 플래그와 일치해야 합니다... 내 머릿속에서 SQL은 다음과 같아야 합니다. < ; </p> <pre class="brush:php;toolbar:false;">연락처 ID 선택 WHERE 플래그 = '자원봉사자' AND 플래그 = '업로드됨'...</pre> <p>하지만... 아무것도 반환되지 않습니다... 제가 여기서 뭘 잘못하고 있는 걸까요? </p>
P粉384366923P粉384366923423일 전389

모든 응답(2)나는 대답할 것이다

  • P粉511896716

    P粉5118967162023-08-24 17:05:54

    사용법:

    으아악

    핵심은 t.flag 的计数需要等于 IN절의 인수 개수입니다.

    연락처 ID와 플래그의 조합에 고유 제약 조건이 없는 경우 COUNT(DISTINCT t.flag)를 사용하세요. 중복 가능성이 없으면 쿼리에서 DISTINCT를 생략할 수 있습니다.

    으아악

    회신하다
    0
  • P粉138871485

    P粉1388714852023-08-24 11:10:07

    다음을 사용할 수 있습니다. GROUP BYHAVING COUNT(*) = _:

    으아악

    (contact_id, flag가 고유하다고 가정).

    또는 다음 링크를 사용하세요:

    으아악

    플래그 목록이 길고 일치하는 항목이 많으면 첫 번째 플래그가 더 빠를 수 있습니다. 플래그 목록이 짧고 일치하는 항목이 거의 없으면 두 번째 항목이 더 빠를 수도 있습니다. 성능이 문제인 경우 데이터에 대해 테스트하여 어느 것이 가장 잘 작동하는지 확인하십시오.

    회신하다
    0
  • 취소회신하다