【发布时间】:2011-09-29 13:20:16
【问题描述】:
我正在尝试按具有模式[: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 是可能的,但需要停机并且尚未完成,因为到目前为止还没有必要。
【问题讨论】:
标签: mysql sql select substring