我有一个变量:
DECLARE col_name CHAR(255);
如果名称存储在变量中,我如何从NEW/OLD
获取列值。
NEW.{{col_name}}
OLD.{{col_name}}
我需要在触发器中使用它。
MySql 5.5.40
答案 0 :(得分:0)
如果已知可能值的范围(我相信) 一个人可以使用'案例'
SELECT
CASE
when @col_name = 'columnA' then NEW.columnA
when @col_name = 'columnB' then NEW.columnB
-- and so on..
else 'unknown column'
END AS [NEW_col_value],
CASE
when @col_name = 'columnA' then OLD.columnA
when @col_name = 'columnB' then OLD.columnB
-- and so on..
else 'unknown column'
END AS [OLD_col_value]
FROM
...
如果列的类型不同 - 则将它们转换为文本..