最长的匹配前缀

时间:2010-11-06 07:47:00

标签: mysql hadoop hive

在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 个答案:

答案 0 :(得分:7)

这就是我在MySQL中的表现:

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

这将给出最长的前缀(ORDER BY .. DESC)和只有一行(LIMIT 1)。