带有 PDO 连接的 MySQL SET
Posted
技术标签:
【中文标题】带有 PDO 连接的 MySQL SET【英文标题】:MySQL SET with PDO Connection 【发布时间】:2013-04-17 11:08:08 【问题描述】:我正在尝试执行一个很长的 SQL 语句,该语句使用多个用户选项选择“前 N”行。我不想在这里发布整个声明,因为它很长,但我正在使用这篇文章中描述的 mysql 变量:MySql Query: Select top 3 rows from table for each category
该语句在 MySQL 命令行上运行时运行良好,但我遇到的问题是整个查询必须通过 PDO 连接运行,我想知道是否有人可以确认我无法设置值'on-the-飞”,如下图所示。这是 PDO 限制吗?我只是浪费了几个小时吗?非常感谢您的帮助...
SELECT outerseasons.* FROM (SELECT seasons.CountryName, seasons.idCountry, '' as idCountryGroup, '' as CGName, seasons.DIValue_WorkingEntered,
seasons.SNName, seasons.idSeason, seasons.idParameter, seasons.PMName,
CASE
WHEN @idSeason != seasons.idSeason OR @idParameter != seasons.idParameter
THEN @rownum := 1
ELSE @rownum := @rownum + 1
END AS rank,
@idSeason := seasons.idSeason as var_season,
@idParameter := seasons.idParameter as var_parameter
FROM ( SELECT ...
【问题讨论】:
你使用 PDO 准备好的语句吗? 不,它是用原生 MySQL 编写的。不是我的错,也没有办法解决它...... :( 【参考方案1】:PDO 与 SQL 语法有关。它可以执行您编写的任何 SQL 查询。 唯一的麻烦可能是由查询集引起的。可以通过将这些集合拆分为单独的查询并逐个运行它们来轻松解决。
其他任何问题都可能仅由 SQL 语法错误引起。 只需验证您的 SQL 语法和watch PDO errors
【讨论】:
感谢您的反馈,非常感谢。您能否详细说明“通过将这些集合拆分为单独的查询并逐个运行它们可以轻松解决”?您的意思是将每个 SELECT 作为单独的查询运行吗?以及如何再次组合它们(如果有意义的话)。原谅我的无知。 我的意思是将每个查询取消为单独的查询。如果您的 SQL 中没有;
符号,请不要打扰 - 事实并非如此。以上是关于带有 PDO 连接的 MySQL SET的主要内容,如果未能解决你的问题,请参考以下文章