最长的匹配前缀 [英] longest matching prefix
本文介绍了最长的匹配前缀的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在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
的列,其中包含前缀值。
我在配置单元中执行它?
解决方案
这是我在MySQL中的做法:
SELECT num_prefix FROM nums
WHERE'12684041234'LIKE CONCAT(num_prefix,'%')
ORDER BY num_prefix DESC
LIMIT 1
;
这会给出最长的前缀( ORDER BY .. DESC
),只有一行( LIMIT 1
)。
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 ?
解决方案
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
).
这篇关于最长的匹配前缀的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文