设置场景..用户输入一个zipcode min&最大。 在数据库中,我有以下字段:
zip_min, zip_max, zip_list(逗号码的逗号列表)
min&最大用户然后输入必须匹配这3个字段。 我被困在哪里是在zip_list。只是看不到或谷歌我的方式。 我最初的想法是使用正则表达式..但似乎你不能采用匹配值并使用更大/更低的值?
任何人都知道如何使用逗号列表中的数字大于/小于匹配?或者,如果它甚至可能?
-
示例:
第1行:
zip_min = 6000,
zip_max = 7000,
zip_list = 8000,8100
用户输入:
min = 7000
max = 8000
结果必须匹配,逗号列表中的8000位于最小值/最大值之间,而zip_max也会匹配,因为用户输入的最小值为7000.
答案 0 :(得分:1)
按如下方式更改结构:
+---------+ +-----------+ | Entity | | ZipList | +---------+ +-----------+ | id | | entity_id | <= references a row in table "Entity" | zip_min | | zip_code | <= one record for each item in your current "zip_list" column | zip_max | +-----------+ +---------+
然后你的查询变成这样:
SELECT ZipList.zip_code
FROM ZIpList
JOIN Entity ON ZipList.entity_id = Entity.id
WHERE entity_id = 1 -- for example
AND zip_code BETWEEN @user_input_min AND @user_input_max
注意只有问题的一半被涵盖。一旦澄清了要求,我将编辑这篇文章。