我有一个Store
表,其中包含deliveryPostcodes
字段,这是一个以逗号分隔的邮政编码区域列表:
id deliveryPostcodes
1 EC1,EC2,N1
2 EC1,WC1,WC2
3 N1,N2
我想查询此表以查找与邮政编码匹配的商店,例如,如果用户输入EC2A 9XY
,它应该返回第一行,因为这个列表中的条目是前缀完整的邮政编码。
如果没有自定义功能,是否有解决方案?
注意:我知道我可以通过加入一个单独的表格,每行有一个邮政编码区域,但我现在正在探索不同的选项。
答案 0 :(得分:0)
假设DeliveryPostcodes是数值,您可以尝试使用这样的正则表达式匹配。
SELECT *
FROM Store
WHERE deliveryPostcodes RLIKE '.*,?[0-9]+,?.*'
答案 1 :(得分:0)
不是一个真正的答案,而是解决此问题的唯一正确方法:规范化数据并将其放在单独的表中。由于您的解决方案是:
带有邮政编码的查找表也可能在以后派上用场。您可以在谷歌上轻松找到所需国家/地区(或多个国家/地区)的邮政编码列表,甚至可以使用您可以用最少的工作在MySQL中导入的格式。