我有一个查询,我想用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'12号线
我只是不知道如何解决这个错误。有人能帮我解决这个问题吗?
您应该在@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
');
mysql_query不支持多个查询。
http://php.net/manual/en/function.mysql-query.php
mysql*函数已弃用,将被删除。我建议您使用mysqli_*函数或PDO。