我有一个查询,我想在php中写它但显示错误。
我的查询如下:
$exe1 = mysql_query("
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'SUM(CASE WHEN `size_name` = ''',
`size_name`,
''' THEN Quantity ELSE 0 END) AS `',
`size_name`, '`'
)
) INTO @sql
FROM Size;
SET @sql = CONCAT('SELECT st.Style , ', @sql, '
FROM Size s
JOIN Style st ON s.style_id = st.id
GROUP BY st.Style
');
PREPARE stmt FROM @sql;
EXECUTE stmt;") or die(mysql_error());
但是它显示了消息
您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 'SET @sql = CONCAT附近''SELECT st.Style,',@ sql,'FROM Size s'at at 第12行
我只是不知道如何解决这个错误。有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
您应该在@sql
中打印出结果查询以查看问题。
在你的情况下,你似乎在最后一个参数之后有一个额外的逗号。尝试更改行:
SET @sql = CONCAT('SELECT st.Style , ', @sql, '
FROM Size s
JOIN Style st ON s.style_id = st.id
GROUP BY st.Style
');
为:
SET @sql = CONCAT('SELECT st.Style , ', @sql'
FROM Size s
JOIN Style st ON s.style_id = st.id
GROUP BY st.Style
');
答案 1 :(得分:0)
mysql_query不支持多个查询。
http://php.net/manual/en/function.mysql-query.php
mysql_ *函数已弃用,将被删除。我建议你使用mysqli_ *函数或PDO。