在mysql查询中动态传递列

时间:2013-08-23 07:59:29

标签: mysql sql

我的要求是通过动态传递列名来从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]的值。我在这里缺少什么?有人可以帮忙吗?

0 个答案:

没有答案