Возврат подстроки до первой цифры - PullRequest
1 голос
/ 29 сентября 2011

Я пытаюсь сгруппировать строки по полю, которое имеет шаблон [:alpha:][:digit:].* или [:alpha:][:alpha:][:digit:].* по подстроке до, но исключая цифру. то есть возвращенная подстрока будет иметь одну букву или две.

Я думаю что-то вроде:

SELECT
  LEFT(postcode,IF(ISDIGIT(postcode,2),1,2)) AS area,
  COUNT(*) AS num
FROM addresses
GROUP BY
  LEFT(postcode,IF(ISDIGIT(postcode,2),1,2))

За исключением, конечно, функции ISDIGIT() нет.

Я также думал о чем-то похожем на LEFT(postcode,POSITION_REGEX("\d" IN postcode)), но, очевидно, этого тоже не существует: - /

Сервер базы данных работает под управлением MySQL 4.1.24
Обновление до версии 5.0 возможно, но потребует простоя и еще не было сделано, поскольку пока не было необходимости.

1 Ответ

0 голосов
/ 29 сентября 2011
SELECT
    LEFT(postcode, IF(postcode REGEXP '^.[[:digit:]]', 1, 2)) AS area,
    COUNT(*) AS num
FROM addresses
GROUP BY area
...