gpt4 book ai didi

mysql - 根据传递的参数进行条件过滤

转载 作者:行者123 更新时间:2023-11-29 17:42:36 25 4
gpt4 key购买 nike

我有一个表用户:

FirstName, LastName, Status, City

还有更多领域。我在前端显示此表,我需要根据每一列进行过滤,在服务器端。当前 SQL 查询获取所有数据:

SELECT * FROM Users

但是我使用 graphql,并且我希望能够仅将选定的过滤器传递给查询,例子有:

WHERE Status = 'single'

我在后端上使用python ( pymysql)。当他开始按名称查询时,我该如何做到这一点,以便在选择状态后的示例中它查询状态为单例的人等。

最佳答案

不确定我是否得到了你想要的,但在我看来,你需要在过滤器上应用过滤器。也就是说,使用第一个过滤器减少行数,然后应用第二个过滤器进一步减少行数,依此类推。

如果是这种情况,您需要将过滤条件保留在用户 session 中(可能使用列表、数组或集合),以便将它们全部累积起来。

第一次,列表不会有任何元素,因此您的表将显示所有行,并且您的 SQL 将如下所示:

select * from users

当用户添加选择过滤器(状态“单个”)时,界面会将其添加到列表中。使用该列表,您的后端将生成新的 SQL:

select * from users
where status = 'single'

接下来,当用户添加新的选择过滤器(城市“罗马”)时,您将其添加到列表中。后端使用该列表将生成新的 SQL:

select * from users
where status = 'single'
and city = 'Rome'

等等。所以你需要注意两件事:

  • 维护“过滤器列表”:当用户点击界面上的不同位置/按钮时添加/删除/清除过滤条件。
  • 使用列表中的元素动态构建 SQL。

就是这样!

关于mysql - 根据传递的参数进行条件过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49939234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com