gpt4 book ai didi

mysql - 如何仅使用 SQL 实现动态 WHERE 子句? (我不能使用任何编程语言字符串连接)

转载 作者:行者123 更新时间:2023-11-30 21:49:27 24 4
gpt4 key购买 nike

我正在使用 MySql 并且我不太喜欢 SQL,并且我有以下查询参数问题:

我有一个查询,它有一个强制参数和一组可选参数。

目前我是这样实现这种情况的(但在我看来是错误的):

WHERE Localization.id = 2

AND(
EnutriMessageDetails.crop_id = 2
OR
EnutriMessageDetails.process_phase_id = 1
OR
EnutriMessageDetails.process_phase_action_id = 1
OR
EnutriMessageDetails.user_type_id = 1
OR
EnutriMessageDetails.urgency_id = 1
OR
EnutriMessageDetails.provided_by_id = 1
OR
EnutriMessageDetails.cleared_by_id = 1
)

其中Localization.id是唯一的必选参数,所有参数都放入AND(并用OR运算符相互连接) 是可选参数。

好的问题是,据我所知,也许我必须使用类似Dynamic WHERE-Clause 的东西,举个例子:

如果仅指定了这些参数(Localization.id、EnutriMessageDetails.crop_id、EnutriMessageDetails.crop_id),则创建以下 WHERE 子句:

WHERE 
Localization.id = 2
AND
EnutriMessageDetails.crop_id = 2
AND
EnutriMessageDetails.process_phase_id = 1

等等。

我知道使用使用字符串连接的编程语言非常简单,但在这种特定情况下我不能这样做,因为我的查询直接运行到采用 SQL 并使用此 SQL 创建 XML 的工具中。我不可能进行任何类型的字符串连接以使用字符串连接动态构建 WHERE 子句。

那么,是否存在一种仅使用 SQL 来完成此操作的方法?

最佳答案

我在 mssql 中通过从我的 Query 中创建一个字符串来完成此操作,之后您可以执行此字符串而不是 query 。我对这种方法没有任何问题。

EXEC ( 'SELECT * FROM mytable');

Go;

您可以使用字符串变量或您喜欢的任何字符串组合。 https://msdn.microsoft.com/de-de/library/ms188332(v=sql.120).aspx

好像mysql也有一样的.......``

关于mysql - 如何仅使用 SQL 实现动态 WHERE 子句? (我不能使用任何编程语言字符串连接),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47903311/

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