我的要求是通过动态传递列名来从mysql表中获取值,这是我从函数中获取的。但问题是,它显示它,而不是获取列的值。 选择查询是:
SET @stqry =
CONCAT('SELECT DISTINCT
FD.FormsDataID AS FormDataID,
FC.ColumnName AS FieldName,
IFNULL(FC.CustomDisplayName,FC.ColumnName) AS DisplayName,
GetColumnValue(',_FormID,',FC.ColumnName) AS FieldValue,
GetColumnValue(FC.FormID,FC.ColumnName) AS ColIndex
FROM FormsData FD
LEFT JOIN FormsColumns FC ON FD.FormID = FD.FormID
LEFT JOIN FormsRelationship FR ON FR.FormID = FC.FormID
WHERE FD.FormID = ',_FormID,' AND FD.ID = ',_recordID
,' AND FC.FormID=',_FormID
,' AND FD.PARENT_RECORD_ID = 0 AND FC.IsDisplayInEmail = 1
AND FC.IsActive = 1');
select @stqry;
PREPARE n_StrSQL FROM @stqry;
EXECUTE n_StrSQL;
GetColumnValue()是我所做的函数,它从表中返回列名。(我需要它,因为列名是由用户动态添加的)。 我得到的结果是:
FormDataID FieldName fieldValue
-------------------------------
2497 date_time [1]
2497 auto_email [2]
2497 more_email [3]
但是实际结果应该在第三列中获取[1],[2],[3]的值。我在这里缺少什么?有人可以帮忙吗?