在语句中使用多个MySQL查询有什么好处,而不是最小化代码。
如何使用PHP(最好是PDO)执行,检索和显示在一个语句中发送的多个MySQL查询的结果。
答案 0 :(得分:7)
mysql_query()不支持多个查询。但是,有一些解决方法:
http://www.dev-explorer.com/articles/multiple-mysql-queries
http://php.net/function.mysql-query
答案 1 :(得分:4)
无论您使用哪个数据库,将多个查询放入一个语句中效率会更高。如果单独执行查询,则必须通过网络(或至少在进程之间,如果在同一台计算机上)调用数据库,获取与它的连接(包括验证),传入查询,返回结果集,并释放每个查询的连接。
即使您使用连接池,您仍然会来回传递更多的请求。
因此,例如,如果将两个查询合并为一个,则为第二个查询来回保存了所有额外的调用。您组合的查询越多,您的应用就越有效率。
另一个例子是,许多应用程序在启动时会填充列表(例如下拉列表)。这可能是一些查询。在一次通话中执行所有这些操作可以加快启动时间。
答案 2 :(得分:1)
我今晚正在做一些研究,偶然发现了这个问题。上述答案都没有为这个简单的问题提供可行的解决方案。
使用OO方法,您可以使用multi_query()方法在单个连接中执行多个查询语句。
$db_connection->multi_query($query);
查询应该是格式良好的并用分号分隔 - > ;
有关如何处理SELECT数据的更多详细信息,请参阅The PHP manual
答案 3 :(得分:0)
当您需要使用会话变量和临时表时,对同一个调用的多个查询特别有用:
select somecol, @somevar := group_concat( distinct somecol2 separator '|')
from sometbl
where
somecol LIKE "fueh"
group by somecol;
select somecol2
from sometbl
where
somecol LIKE "nyan"
and
vc_wp regexp concat( '(', @somevar, ')' )
order by somecol;