2014-10-29 43 views
0

我需要郵政區域(第一個字母)匹配我的字符串的所有郵政編碼。MySQL正則表達式爲英國郵政地區

例郵政編碼:

SW12 3AB 
S12 3AB 

如果我的郵區的字符串是 'S' 應該只返回S12 3AB

如果我的郵政區域字符串是'sw',它應該只返回SW12 3AB

這是我的查詢:

SELECT ID, Postcode 
FROM order 
WHERE Postcode REGEXP '^s[0-9].*' 

花時間閱讀我看到這個語法沒有問題的手冊後。 - 郵編必須用我的字符串 開始 - 字符串必須跟一些 - 後

遺憾的是不返回任何記錄任何事情都有可能發生。我做錯了什麼?

+0

可能是你的's'在'^ s [0-9]。*''是小寫字母而郵編是大寫字母'S'?大多數正則表達式在默認情況下都是區分大小寫的。試試''^ [sS] [0-9]'(你可以忽略'。*',因爲你不匹配字符串的末尾)。 – funkwurm 2014-10-29 16:07:21

+0

@funkwurm,省略'。*'是一個很好的提示,謝謝。不幸的是,大小寫敏感性不是問題。以很多方式嘗試...... – Miklos 2014-10-29 16:15:32

回答

0

我發現了這個問題,我覺得很傻。

沒有英國郵政編碼區域「S」,因此它沒有找到任何匹配。

它適用於這些「N」和「NW」以及所有其他有效區域。

如果有辦法,我很樂意讓這篇文章被刪除。道歉。