2

我有一个邮政编码字段,并且只想获取出现在数字出现之前的第一个字母。例如,E11 将返回 E,HD4 将返回 HD。

4

2 回答 2

2

使用正则表达式查找第一个数字的位置

http://dev.mysql.com/doc/refman/5.1/en/regexp.html

然后使用substring从 0 到这个数字

http://www.w3resource.com/mysql/string-functions/mysql-substring-function.php

于 2013-04-26T13:36:04.413 回答
2

我希望这有帮助 。. .

SELECT IF (postcode REGEXP "^[A-Z][A-Z]",LEFT(postcode,2),LEFT(postcode,1));

这些例子表明:

SELECT IF ("H5 7PL" REGEXP "^[A-Z][A-Z]",LEFT("H5 7PL",2),LEFT("H5 7PL",1));
-> "H"

SELECT IF ("HD5 7PL" REGEXP "^[A-Z][A-Z]",LEFT("HD5 7PL",2),LEFT("HD5 7PL",1));
-> "HD"
于 2013-04-26T14:36:57.350 回答