我需要根据现场的第一个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