gpt4 book ai didi

mysql - 需要帮助通过使用 "for"或 "while"循环类型来缩短此查询

转载 作者:行者123 更新时间:2023-11-29 07:30:18 25 4
gpt4 key购买 nike

我想知道是否有任何方法可以更改此 SQL 查询,这样我就不必每次都对必须从中提取数据的新字段(“FieldName”)执行 UNION .

我有大约 30 个名称为“Waybill1 到“Waybill30”的字段。

我想执行以下查询,而不必为每个字段 ID 使用 UNION。

这里是查询,仅使用 3 个“FieldName”值:

SELECT `FieldValue`, `SubmissionID` FROM `jos_rsform_submission_values` WHERE `FieldName` = "Waybill1" AND `FieldValue` != ""
UNION
SELECT `FieldValue`, `SubmissionID` FROM `jos_rsform_submission_values` WHERE `FieldName` = "Waybill2" AND `FieldValue` != ""
UNION
SELECT `FieldValue`, `SubmissionID` FROM `jos_rsform_submission_values` WHERE `FieldName` = "Waybill3" AND `FieldValue` != "" ORDER BY `SubmissionId` ASC

它基本上应该执行与 PHP/Javascript 等中的“for”循环相同的任务。

我不太熟悉 SQL,所以任何帮助/指导将不胜感激。

最佳答案

你不需要在这里使用UNION,你可以只使用IN运算符(operator)

IN 运算符允许您在 WHERE 子句中指定多个值。

SELECT FieldValue,
SubmissionID
FROM jos_rsform_submission_values
WHERE FieldName IN ('Waybill1', 'Waybill2', 'Waybill3', 'Waybill4', etc...)
AND FieldValue != ""
ORDER BY SubmissionId ASC

关于mysql - 需要帮助通过使用 "for"或 "while"循环类型来缩短此查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51615208/

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