我想知道是否可以通过某种方式更改此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不太熟悉,所以任何帮助/指导都将不胜感激。
答案 0 :(得分:1)
您无需在此处使用UNION
,只需使用IN运算符
通过IN
运算符,您可以在WHERE
子句中指定多个值。
SELECT FieldValue,
SubmissionID
FROM jos_rsform_submission_values
WHERE FieldName IN ('Waybill1', 'Waybill2', 'Waybill3', 'Waybill4', etc...)
AND FieldValue != ""
ORDER BY SubmissionId ASC