복붙노트

[HADOOP] 가장 긴 일치 접두사

HADOOP

가장 긴 일치 접두사

MySQL에서 '12684041234'를 가장 긴 접두어와 일치 시키면됩니다.

SELECT num_prefix
FROM nums
WHERE '12684041234' LIKE CONCAT(num_prefix, '%')
AND LENGTH(num_prefix) = (
    SELECT MAX(LENGTH(num_prefix))
    FROM nums
    WHERE '12684041234' LIKE CONCAT(num_prefix, '%')
)

표 nums에는 접두사 값이있는 num_prefix라는 열이 있습니다.

하이브에서 어떻게 할 수 있습니까?

해결법

  1. ==============================

    1.이것이 내가 MySQL에서하는 방법이다.

    이것이 내가 MySQL에서하는 방법이다.

    SELECT num_prefix FROM nums
      WHERE '12684041234' LIKE CONCAT(num_prefix,'%')
      ORDER BY num_prefix DESC
      LIMIT 1
    ;
    

    이렇게하면 가장 긴 접두어 (ORDER BY .. DESC)와 단 하나의 행 (LIMIT 1)이 제공됩니다.

  2. from https://stackoverflow.com/questions/4112362/longest-matching-prefix by cc-by-sa and MIT license