我需要根據現場的第一個2個字符的選擇,因此,例如MySQL查詢 - 選擇郵編匹配
SELECT * from table WHERE postcode LIKE 'rh%'
但這會選擇包含的2個字符的任何任何記錄指向「郵編」字段吧?我需要一個只選擇前2個字符的查詢。任何指針?
謝謝
我需要根據現場的第一個2個字符的選擇,因此,例如MySQL查詢 - 選擇郵編匹配
SELECT * from table WHERE postcode LIKE 'rh%'
但這會選擇包含的2個字符的任何任何記錄指向「郵編」字段吧?我需要一個只選擇前2個字符的查詢。任何指針?
謝謝
您的查詢是正確的。它搜索具有「rh」的起始的郵政編碼。
相反,如果你想搜索包含字符串「RH」在場上的任何地方郵政編碼,你可以這樣寫:
SELECT * from table WHERE postcode LIKE '%rh%'
編輯:
爲了回答您的評論,你可以使用%
和_
中的一種或兩種進行相對簡單的搜索。正如您已經注意到的,%
匹配任意數量的字符,而_
匹配單個字符。
所以,爲了配合開始 「RHx中」(其中x是任意字符)郵政編碼查詢將是:
SELECT * from table WHERE postcode LIKE 'RH_ %'
(_
後介意空間)。對於更復雜的搜索模式,您需要閱讀有關正則表達式。
延伸閱讀:
http://dev.mysql.com/doc/refman/5.1/en/pattern-matching.html
LIKE '%rh%'
將在年初 'RH' 隨時隨地
LIKE 'rh%'
將返回 'RH' 的所有行返回所有行
LIKE '%rh'
將返回所有行'rh'結尾。
如果你想獲得只有前兩個字符「RH」,使用MySQL SUBSTR()函數 http://dev.mysql.com/doc/refman/5.1/en/string-functions.html#function_substr
這是非常有用的,MySQL SUBSTR()看起來很有希望 – Dave 2010-07-12 13:05:06
非常感謝您的回覆。 是的,似乎查詢是選擇以'RH'開頭的任何郵政編碼字段。這是我遇到的問題: 比方說,我只是想與RH1開始郵政編碼,例如: RH1 3JS RH2 7YH 但我的查詢也會選擇: RH16 3NP RH17 3TH 是有一種方法可以在3(或任意數量)的字符後停止選擇? 非常感謝 – Dave 2010-07-12 13:03:39
非常感謝Anax的代碼和鏈接,我已經得到了大部分查詢的工作,現在我想如何,歡呼。 – Dave 2010-07-12 13:18:48