php - @variable mysql 在 php mysql 执行时返回空值

标签 php mysql

我需要在 php 中运行 mysql:

$sql_subject_summary = "SELECT 
                c.subject_code_id, c.subject_name, @total_target:= SUM(s.total_target_question) AS total_target_question,
                @total_correct := ROUND((RAND() * (@total_target-10))+10) AS total_correct, 
                (@total_correct / @total_target)*100 AS percent, c.icon_filename
                 FROM 
                edu_subject_code c LEFT JOIN wkp_wg_student_subject s ON c.subject_code_id=s.subject_code_id
                WHERE s.student_id=$student_id AND s.week_id = $current_week_id
                $sql_inject    
                GROUP BY s.subject_code_id ";

但是,@total_ Correct、@total_target 的值在 php mysql 执行时返回 null 。 当我在mysql IDE中运行时,结果是好的。

如何解决这个问题?

最佳答案

这是正确的原因,要使其工作,您需要使用SELECT INTO... 构造,例如select col1 into @arg1 from tbl1。此外,既然您是从 PHP 运行查询,为什么还需要它呢?如果您确实需要,请考虑将查询包装在存储过程中,并将这些参数作为 OUT 参数。

嗯,它返回 null,因为您没有选择这些参数。查询执行后,您需要选择这些参数:select @total_ Correct, @total_target;

为什么不按原样运行查询(如下所示)并获取特定列的值

SELECT 
                c.subject_code_id, c.subject_name, SUM(s.total_target_question) AS total_target_question,
                ROUND((RAND() * (@total_target-10))+10) AS total_correct, 
                (@total_correct / @total_target)*100 AS percent, c.icon_filename
                 FROM 
                edu_subject_code c LEFT JOIN wkp_wg_student_subject s ON c.subject_code_id=s.subject_code_id
                WHERE s.student_id=$student_id AND s.week_id = $current_week_id
                $sql_inject    
                GROUP BY s.subject_code_id 

关于php - @variable mysql 在 php mysql 执行时返回空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41165546/

相关文章:

php - mySql 中的 DAYS 数据类型

php - 打破盒子中的一长串值

php - 如何在不安装的情况下运行MySQL并通过IP地址访问(如http ://127. 0.0.1/phpmyadmin)

php - 如何从datalist中获取值id并显示标题?

android - 类扩展 AsyncTask 将不会启动

mysql - 如何在mysql中创建用户并分配密码

mysql - 在 mysql 的 where 子句中使用 substring_index

mysql - Rails 事件记录的选择和组有什么区别?

mysql - 自然键的crc32作为主键

php - 返回奇怪的 POST 数据垃圾