从邮政编码中获取第一部分?

时间:2015-02-05 15:17:07

标签: mysql

使用MySQL如何抓取data.postcode字段的第一部分?

例如:

M40 1JY
M8 8NW

我想这样显示:

M40
M8

3 个答案:

答案 0 :(得分:3)

使用子字符串并找到:

select substring(postalcode,1,LOCATE(" ",postalcode)) from `data`

locate将找到空白索引,子字符串为您提供直到此位置的子项。

答案 1 :(得分:3)

select substring(postcode, 1, locate (' ', postcode) - 1) from data;

locate (' ', postcode)返回空格()的位置,第一个输入,第二个输入(你的列),你不想显示空格从而从中减去1号。

substring(data, start, length)从开始的数字中获取数据的子字符串(你的列),你想从头开始,所以这是1,并显示你输入的字母数,这是locate的结果。

答案 2 :(得分:2)

SUBSTRING_INDEX(str,delim,count)函数是您所需要的。此函数在 count 出现的分隔符 delim 之前返回字符串 str 中的子字符串。您可以访问此链接以获取更多详细信息。 http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_substring-index

对于你的问题,

SELECT SUBSTRING_INDEX(postcode, ' ', 1) from YourTable; 

将返回

M40
M8