Question

In MySQL to match '12684041234' to the longest prefix you would do

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, '%')
)

Table nums has a column named num_prefix with prefix values.

How can I do it in hive ?

Was it helpful?

Solution

This is how I do it in MySQL:

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

This will give the longest prefix (ORDER BY .. DESC) and only one row (LIMIT 1).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top