我有一张带有产品的表格,用户可以选择他想让他们看到的地区和城市。他可以从下拉菜单中选择“所有地区”和“所有城市”,然后我将列设置为0。
买家可以选择要从哪个城市观看商品,因此他们可以使用下拉菜单选择地区和/或城市。他们还可以从所有地区和/或城市中选择产品。
问题是此高级查询的外观如何。
如果卖方点击了一个特定地区而不是所有城市,那么如果买方选择了该地区,他可以选择他想要的任何一个城市。该产品仍将显示。
买方可以选择所有城市,而不是选择城市。例如。然后他将看到所有线程,无论他们发布到哪个城市。
我是SQL的新手,所以如果您指导我为该查询选择正确的命令,那就更好了。这对我来说有点复杂,我不知道从哪里开始。
最佳答案
我想我明白你的意思。您的查询可以有两个参数,一个用于城市,一个用于区域。
在城市下拉列表中,如果用户选择一个城市(例如洛杉矶),则@city参数将包含城市(例如,像LAX这样的代码)。如果他们选择“所有城市”,则@city参数的值为NULL。
区域相同。
然后,您的查询可能类似于:
SELECT ...
FROM city_tbl
INNER join region_tbl ON ...
WHERE ( @city IS NULL or @city = city_tbl.city_code )
AND ( @region IS NULL or @region = region_tbl.region_code )
AND ...
因此,如果他们选择了“所有城市”,则@city为NULL,他们将看到所有城市,否则,他们选择的特定城市必须与city_tbl.city_code匹配。
我怀疑您的想法有些复杂,但是希望这是正确的。
关于mysql - 先进的SQL查询设计,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1879811/