首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP/PDO/MySQL:将多个查询转换为单个查询

PHP/PDO/MySQL:将多个查询转换为单个查询
EN

Stack Overflow用户
提问于 2014-02-05 18:08:08
回答 1查看 578关注 0票数 1

(是的,我“在问我的问题之前已经彻底地寻找了答案”.但没有找到正确的答案来解决我的问题。我读过关于用户变量的MySQL手册.我读过PHP关于PDO的文章.仍然无法找到解决办法。)

我正试图从PhpMyAdmin代码中获得在PhpMyAdmin:中正确而成功地执行的这个SQL语句返回的相同结果集

代码语言:javascript
复制
SET @x := 0;

SELECT * 
FROM (

   SELECT 
   `o`.`timestamp`
   `o`.`v_phase_a` ,
   `o`.`v_phase_b` ,
   `o`.`v_phase_c` ,
   (@x := @x+1) AS x
   FROM `operational_parameters` AS o
   WHERE `o`.`timestamp` >= '2014-01-21 05:00:00'
   AND `o`.`timestamp` <= '2014-02-04 04:59:30'
   ORDER BY `o`.`timestamp`

) t
WHERE x MOD 336 = 0;

结果集类型的基本原理是一个很长的故事,并且植根于我的客户的业务需求。它应该表示存储在给定时间跨度内的30秒间隔行中的数据的统一抽样,在本例中为2周.这个特定的语句确切地返回120行数据,然后由PHP打包,然后发送到UI中,以便用jqplot插件绘制.

其他一切都运行得很好,除了在PHP中我无法执行多个SQL语句之外,我认为这是设置用户变量@x所必需的进程,以便在随后的SELECT语句中使用。同样,当使用phpMyAdmin查询我的数据库时,这个SQL运行得很好.

我认识到,一般来说,在PHP中,一个人不能在一个查询中执行多个SQL语句.

然而,是否有可能创建一个SQL语句(作为字符串),它将获取与MySQL使用phpMyAdmin工具和上面列出的SQL返回的结果集相同的结果集?--一个语句,可以传递给我的PHP中新创建的PDO,并获得正确的行数?

(似乎PDO应该能够处理这种情况,至少这是我从我对这个董事会的研究中收集到的.)

我对PHP/MySQL有点陌生,所以我准备学习。继续教书!

EN

回答 1

Stack Overflow用户

发布于 2014-02-05 18:11:51

可以将初始化移动到子查询中:

代码语言:javascript
复制
SELECT *
FROM (SELECT o.timestamp , o.v_phase_a , o.v_phase_b , o.v_phase_c , (@x := @x+1) AS x
      FROM operational_parameters AS o cross join
           (select @x := 0) const
      WHERE o.timestamp >= '2014-01-21 05:00:00' AND o.timestamp <= '2014-02-04 04:59:30'
      ORDER BY o.timestamp
     ) t
WHERE x MOD 336 = 0;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21585063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档