찾다

 >  Q&A  >  본문

JSON_TABLE 값을 사용하여 Mysql의 WHERE 조건 비교

JSON 값의 쉼표로 구분된 목록으로 ID 목록을 얻었습니다. 일부 샘플 데이터세트는 다음과 같습니다. [340596,340597,340595] 이 목록은 엄청날 수 있으며 때로는 50,000개의 ID가 쉼표로 구분되어 있을 수 있습니다

다음 쿼리는 이러한 ID를 테이블 기본 키에 연결하고 현재 테이블에 존재하는 레코드를 가져옵니다

으아아아

기본 테이블에 이러한 ID가 포함되어 있거나 이러한 레코드가 기본 테이블에서 삭제되었을 수 있으므로 이 쿼리의 목적은 반환된 결과 집합에 활성 레코드만 포함되어 있는지 확인하는 것입니다

이 쿼리에 필터를 하나 더 적용해야 했고 이는 또 다른 JSON int 배열을 기반으로 했으며 이를 ContactID 열과 일치시켜야 했습니다

으아아아

그러나 Mysql IN 성능은 대규모 결과 세트의 경우 더 좋지 않습니다. 이 IN을 더 나은 것으로 바꿀 수 있나요?

P粉011684326P粉011684326241일 전390

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

  • P粉251903163

    P粉2519031632024-03-28 10:05:11

    IN 절의 ID를 임시 테이블에 덤프한 다음 JSON_TABLE과 조인하여 결과를 얻을 수 있습니다. 또는 CTE를 사용하여 즐거운 시간을 보낼 수도 있습니다.

    으아악

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