<CFIF ListLen(SESSION.WHSurveyStruct.reasonString, ";") gt 0>
<CFQUERY name="insertReasons" datasource="#REQUEST.dsn#">
INSERT INTO TWelcomeHome_Reason
(ReasonID, SubReasonID, SurveyID)
SELECT #sanitize(ListFirst(SESSION.WHSurveyStruct.reasonString, ";"))#, #sanitize(getLatestSurveyID.SurveyID)#
<CFLOOP list="#sanitize(ListRest(SESSION.WHSurveyStruct.reasonString, ';'))#" index="thisReason" delimiters=";">
UNION ALL
SELECT #sanitize(thisReason)#, #sanitize(getLatestSurveyID.SurveyID)#
</CFLOOP>
</CFQUERY>
これが何をするのか理解しようとしています。ループと混同しています。select ステートメントに ? がないのはなぜFROM
ですか? OK、それらは単なるスカラーです。
ループの外側に 1 つの select ステートメントがあり、ループの内側に 1 つの select ステートメントがあるのはどうですか? 要点がわかりませんunion all
。また、3 つの列 (ReasonID、SubReasonID、SurveyID) が指定されているのに、それぞれにselect
2 つの値が指定されているのはなぜですか?
ダンプ:
構造体
CACHED: false EXECUTIONTIME: 0 RECORDCOUNT: 8 SQL: INSERT INTO TWelcomeHome_Reason (ReasonID、SubReasonID、SurveyID) SELECT 6、18、245 UNION ALL SELECT 6、21、245
UNION ALL SELECT 6、24、245 UNION ALL SELECT 3、5、 245 ユニオンオール セレクト 3, 6, 245 ユニオンオール セレクト 3, 8, 245 ユニオンオール セレクト 3, 11, 245 ユニオンオール セレクト 3, 7, 245