繁体   English   中英

什么是最好使用php查询集或mysql函数?

[英]what is better to use php query set or mysql function?

如果表1中有数据,则需要使用该数据为表1中返回的每一行返回表2中的数据。在PHP中使用一组查询(其中一个查询包含在另一个的while循环中或使用SQL)会更有效查询内的功能?

例如:

$qry = mysql_query(SELECT date FROM table1)

while($res = mysql_fetch_array($qry))
{
  $qry = mysql_query("SELECT name FROM table2 WHERE date=$res['date']")
}

或将此操作作为从查询中的table1返回ID的函数来执行。

(向左/向右)加入?

除非我误解了这个问题...

我认为您正在寻找JOIN sql语法。 如果您有2个表:消息和作者,并且您想返回包含作者的消息。 然后,您可以编写以下SQL语句:

SELECT m.body, a.name FROM message m 
LEFT JOIN author a ON (a.id=m.author_id)

这将返回带有相应作者姓名的消息正文

表作者:

  • id-主键
  • 名称-作者姓名

表消息:

  • 正文-消息文本
  • author_id-作者的ID

UPD1:

这样可以更快地循环每个消息并选择作者。 因为JOIN允许您在单个查询中返回所有数据(使用for循环时不返回N x个查询)。

UPD2:

使用表查询将如下所示:

SELECT t1.date, t2.name FROM table1 t1 LEFT JOIN table2 t2 ON (t2.date=t1.date)

这取决于在while循环中还是在查询本身中更容易找到数据。

因此,如果数据库必须将子查询基于主查询中每一行的结果,并且主查询中总共有1000行,并且有100个结果,则它必须检查所有行100次,因此为100,000它运行的子查询。

因此认为它是主要查询结果的数量。 如果while循环必须查询数据库100次,而DB在一次查询中可以更快,更高效地完成查询,那更好。 但是,如果您想要答案的子集,可以说“仅基于最后一组结果进行查询”,则while循环会更好。

有什么更有效的使用

PHP中的一组查询,一个查询嵌入另一个的while循环中

要么

查询中的SQL函数

看来您自己回答了问题,不是吗?

您发送到dbms的每个查询都必须通过网络发送,解析,分析然后执行。 您可能希望最大程度地减少发送到数据库的查询数量。

可能会有例外,例如,如果数据处理需要dbms无法执行的操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM