簡體   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