我有一个将邮政编码范围映射到联系人的表。邮政编码以多种格式保存在不同的国家/地区。
表的邮政编码范围:
从代码到代码联系人ID国家/地区代码 12000 12999 18 fr BT000000 BT9ZZZZZ 34英国 ...
要查找特定范围内的联系人,例如以123开头的范围,我使用以下查询:
select * from postcode-range
where '123' between from-code and to-code
and country-code = 'fr'
这将返回第一个条目,联系人ID 18。
问题是,如果我搜索“ 120”或“ 12”,则没有结果。
知道这里有什么问题吗?有人有替代的SQL查询吗?
'12'<'120'<'12000'
如果将“ fr”的代码从“与”更改为“ 12”和“ 12999”,则可以执行写的查询,尽管它会包含诸如“ 121AB”之类的模式,这可能不是有效的法语邮政编码。您可以包括其他验证,例如测试字符串仅包含数字或其长度。
例如做
like '12[0-9][0-9][0-9]'
Run Code Online (Sandbox Code Playgroud)