самый длинный соответствующий префикс - PullRequest
2 голосов
/ 06 ноября 2010

В 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 Ответ

7 голосов
/ 13 апреля 2011

Вот как я делаю это в MySQL:

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

Это даст самый длинный префикс (ORDER BY .. DESC) и только одну строку (LIMIT 1).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...