我需要根据字段的前 2 个字符进行选择,例如
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
关于MySQL 查询 - 选择邮政编码匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3228560/