我有这个错误。
当我将列Question name
值从int ex 1
更改为字符串ex Q1
时,我的查询现在会产生错误
当Question name
的值为integer
数据类型时,我的第一个查询没有问题
SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'MAX(IF(`Question name` = ', `Question name`, ',`mark`,NULL))')
) INTO @sql
FROM Question;
SET @sql = CONCAT('SELECT `User`.`id`, `User`.`name`, `Grade`.`grade`, ', @sql, '
FROM `User` join `Grade` on `User`.`id` = `Grade`.`user_id`
join `Question` on `User`.`id` = `Question`.`user_id` GROUP BY `User`.`id`');
PREPARE stmt FROM @sql;
EXECUTE stmt;
答案 0 :(得分:0)
您忘了添加引号 这样:
'MAX(IF(问题名称=',问题名称,',标记,空))')
应该是:
'MAX(IF(问题名称=“',问题名称,'”,标记,NULL))'