【发布时间】:2021-07-07 18:53:24
【问题描述】:
我正在 Flask 中编写一个 API,它加载保存在文件中的查询以执行它们。执行的查询取决于输入格式。但是,所有查询都是相同的,只是它们可能具有这 4 个 sn-ps 中的 1 个:
SELECT *
FROM shipments
WHERE origin = %(origin)s
AND destination = %(destination)s
SELECT *
FROM shipments
WHERE origin = %(origin)s
AND destination IN %(destination)s
SELECT *
FROM shipments
WHERE origin IN %(origin)s
AND destination = %(destination)s
SELECT *
FROM shipments
WHERE origin IN %(origin)s
AND destination IN %(destination)s
有没有更好的方法来保存和修改基于输入格式的单个 SQL 查询,而不是有 4 个略有不同的副本?
我不确定这是否是可取的,因为它们 是 4 个不同的查询,但我想知道是否有一种方法可以参数化查询本身,例如:
SELECT *
FROM shipments
WHERE origin %(origin_format)q %(origin)s
AND destination %(destination_format)q %(destination)s
其中%(origin_format)q 和%(destination_format)q 将是IN 或=
【问题讨论】:
标签: python sql postgresql