我写了下面的查询,它在 Mysql 工作台中完美运行。但是当我从 php 运行它时,它会抛出错误。任何帮助,将不胜感激。
查询:
$sql=SET @sql = NULL;
SELECT GROUP_CONCAT(DISTINCT CONCAT('max(CASE WHEN date = "',date,'" THEN Market_cap end) AS "',date,'"'))
INTO @sql
FROM company_name
JOIN master on company_name.id=master.company_id
where date between '2018-01-01' and '2018-01-02';
SET @sql = CONCAT('SELECT name,symbol,',@sql,'FROM company_name join master on company_name.id=master.company_id where date between ''2018-01-01'' and ''2018-01-02''GROUP BY name,symbol');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
$res=mysqli_query($conn,$sql);
if (!$res) {
echo("Error description: " . mysqli_error($conn));
}
如图所示抛出错误:
我还必须使用上面的查询添加我的输出:
最佳答案
试试这个
$sql="SET @sql = NULL;SELECT GROUP_CONCAT(DISTINCT CONCAT('max(CASE WHEN date = '".$date."' THEN Market_cap end) AS '".$date."'))INTO @sql FROM company_name join master on company_name.id=master.company_id where date between '2018-01-01' and '2018-01-02';SET @sql = CONCAT('SELECT name,symbol,',@sql,'FROM company_name join master on company_name.id=master.company_id where date between ''2018-01-01'' and ''2018-01-02''GROUP BY name,symbol');PREPARE stmt FROM @sql;EXECUTE stmt;DEALLOCATE PREPARE stmt";
$res= mysqli_query($conn,$sql);if (!$res) {echo("Error description: " . mysqli_error({$conn}));
Note: I was not sure why have you used
"',date,'"
in your query, so replaced it with'".$date."'
. Make sure to use it as you needed.
关于php - 群组联系人查询在 php 中抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48656199/