[請益] 有可重新讀資料的函式嗎

看板PHP作者 (ask)時間17年前 (2008/09/05 17:35), 編輯推噓4(409)
留言13則, 6人參與, 最新討論串1/1
我不知我標題下的恰不恰當 因為我不知道這是怎樣的問題 ------------------------------------- 我的問題就像是我送一個query到DB之後 利用mysql_fetch_row不斷去讀每一筆資料 讀到最後一筆的時候有辦法再讓他重第一筆資料開始讀嗎!? 而且不需要再加其他欄位 也不需要再送query 因為有150多萬筆... 而我要的就是有兩個table 我要查詢table_1裡面的每一筆資料跟table_2裡面做比較 如果數值相等才做動作 如: while( $data1 = mysql_fetch_row($table_1) ) { while( $data2 = mysql_fetch_row($table_2) ) { if($data1[0]==$data2[0]) echo "123"; } } 現在卡在第一個while的第一筆資料進來之後 跑到第二個while時做完判斷之後 不管有沒有符合的 重新再跑第二次的話 第二個while因為已經是最後一筆了 所以後面不管怎樣比較都是不符合的 想問有沒有函式可以讓每次進入第二個while的時候讓他重頭第一筆開始跑資料 或是各位闆有有沒有更好更快的方法可以提供 因為現在就想到這個方法 不過又卡在這邊= =" 先謝謝各位了~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.139.133.171

09/05 17:49, , 1F
mysql_data_seek
09/05 17:49, 1F

09/05 17:49, , 2F
說真的..在mysql_fetch_row頁面上就有關聯函式連結了
09/05 17:49, 2F

09/05 19:03, , 3F
那如果資料量太大 出現Maximum execution time
09/05 19:03, 3F

09/05 19:03, , 4F
該怎樣去解決呢!?
09/05 19:03, 4F

09/05 19:17, , 5F
set_time_limit()
09/05 19:17, 5F

09/05 19:26, , 6F
謝謝樓上 不過處理時間超過十分鐘了還在跑...無言
09/05 19:26, 6F

09/06 00:21, , 7F
記得mysql 超過10萬筆效率會開始差,要不要改用prel ?
09/06 00:21, 7F

09/06 01:21, , 8F
這種需求怎麼會把150筆資料一次全部select出來然後在
09/06 01:21, 8F

09/06 01:22, , 9F
php裡面用這種迴圈做比對呢?不管怎樣一定都是慢到爆
09/06 01:22, 9F

09/06 01:22, , 10F
原po的需求應該是在資料庫裡面用where t1.a=t2.a篩選
09/06 01:22, 10F

09/06 01:23, , 11F
出兩個資料表裡面某欄位相同的資料才對吧。資料表
09/06 01:23, 11F

09/06 01:23, , 12F
結構和索引做得好,150萬筆資料並不算太多。y
09/06 01:23, 12F

09/06 11:41, , 13F
我用資料表超過700萬筆 資料索引用好即可
09/06 11:41, 13F
文章代碼(AID): #18mFrh43 (PHP)
文章代碼(AID): #18mFrh43 (PHP)