我正在尝试通过子字符串具有模式[: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是可能的,但需要停机时间,但尚未完成,因为到目前为止还没有必要。
答案 0 :(得分:0)
SELECT
LEFT(postcode, IF(postcode REGEXP '^.[[:digit:]]', 1, 2)) AS area,
COUNT(*) AS num
FROM addresses
GROUP BY area