2

在 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前缀值命名的列。

我怎样才能在蜂巢中做到这一点?

4

1 回答 1

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)。

于 2011-04-13T13:11:44.313 回答