除了最小化代码之外,在一个语句中使用多个 MySQL 查询有什么好处。
您如何使用 PHP(最好是 PDO)执行、检索和显示在一条语句中发送的多个 MySQL 查询的结果。
mysql_query() 不支持多个查询。但是,有一些解决方法:
http://www.dev-explorer.com/articles/multiple-mysql-queries
http://php.net/function.mysql-query
无论您使用哪个数据库,将多个查询放在一个语句中会更有效。如果单独执行查询,则必须通过网络(或者至少在同一台机器上的进程之间)调用数据库,获取到它的连接(包括验证),传入查询,返回结果集,并为每个查询释放连接。
即使您使用连接池,您仍然需要来回传递更多的请求。
因此,例如,如果您将两个查询合并为一个,则您已经为第二个查询保存了所有来回的额外调用。您组合的查询越多,您的应用程序就会变得越高效。
再举一个例子,许多应用程序在启动时会填充列表(例如下拉列表)。这可以是许多查询。在一个呼叫中执行所有这些可以加快启动时间。
今晚我正在做一些研究,偶然发现了这个线程。上面的答案都没有为这个简单的问题提供可行的解决方案。
使用 OO 方法,您可以使用 multi_query() 方法在单个连接中执行多个查询语句。
$db_connection->multi_query($query);
查询应该格式正确并用分号 -> 分隔;
有关如何处理 SELECT 数据的更多详细信息,请参阅PHP 手册
当您需要使用会话变量和临时表时,同一调用中的多个查询特别有用:
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;