gpt4 book ai didi

python - SQL 中的动态列格式 - 以及存储格式的后端

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

我正在尝试用 Python 创建一个系统,在该系统中,可以从一组表格中选择多行,这些表格将以用户定义的方式进行格式化。假设表 a 有一组列,其中一些包含 datetimestamp 值。每个列的用户定义格式应该存储在另一个表中,并在运行时在主查询上查询和应用。

让我举个例子:有不同的方法来格式化日期列,例如使用

SELECT to_char(column, 'YYYY-MM-DD') FROM table;

在 PostgreSQL 中。

例如,我希望在运行时从另一个表动态查询 to_char() 内置函数的第二个参数,然后在它有值时应用它。

从这样的表中读取定义并不是什么大问题,而不是创建一个数据库方案,该方案将从用户界面接收数据,用户可以从中选择将哪些格式化指令应用于不同的列。用户应该能够选择要包含在用户查询中的用户列集,以及用户为每个列定义的格式。

几天来,我一直在考虑以一种优雅高效的方式执行此操作,但无济于事。让用户在文本字段中输入用户想要的定义并将其包含在查询中几乎会产生 SQL 注入(inject)攻击的邀请(尽管我可以使用 escape() 函数),并存储每个可能的组合对我来说似乎也不可行。

最佳答案

在我看来是stored procedure或者子选择在这里会很好用,尽管我还没有测试过。假设您在 users 表中为每个用户存储了一个 date_format

SELECT to_char((SELECT date_format FROM users WHERE users.id=123), column) FROM table;

您的里程可能会有所不同。

关于python - SQL 中的动态列格式 - 以及存储格式的后端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1503621/

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