我有一张带有产品的表格,用户可以选择他想让他们看到的地区和城市。他可以从下拉菜单中选择“所有地区”和“所有城市”,然后我将列设置为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/

10-10 03:23
查看更多