![](/img/trans.png)
[英]Use of LIMIT in Recursive Common Table Expression is not allowed in MySQL
[英]Use common table expression query
我有一个通用的表表达式,可以在mssql编辑器上正常工作。 但是,当我在PHP中使用相同的填充字符串变量并使用odbc_exec($dbhandle,$query )
它不返回任何行。 没有引发任何错误。 这是对PHP的限制吗? 各种其他表上的其他选择查询运行良好。 问题仅在于CTE声明。
我知道这是一个老问题,但是没有得到回答,这是Google的高排名结果,所以我认为自己会参与其中。
查询MS SQL服务器的本机PHP方法都不支持公用表表达式(“ WITH”子句)。 这些包括mssql_ *库和odbc_ *库。
这是由于MS SQL处理CTE的方式(通过创建要执行的宏)。 好消息是,Microsoft的库(sqlsrv_ *)确实支持CTE。
在创建和使用连接,简单查询,准备好的语句等方面,sqlsrv_ *库的操作与mssql_ *相同。它们几乎是对MS SQL服务器使用mssql_ *或odbc_ *的“直接替代”,并且速度明显更快启动。
您可以从此链接获取sqlsrv库。 在撰写本文时,SQL Server 2.x很好,但是SQL 2012需要3.x。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.