2011-08-19 69 views
0

我收到了一組將被中斷的查詢。因此,我需要停止查詢,保存最後添加的ID,並在另一天繼續添加最後一個ID的內容。Mysql中斷查詢並從最新ID開始另一個查詢

SZENARIO:

1)I從另一表(表-A)查詢數據是這樣的:

SELECT * 
FROM $table_A 
ORDER BY uID ASC 

2)然後,添加到表中(表-B),該 「看起來」像這樣:

|¯¯¯¯¯|¯¯¯¯¯¯¯¯|¯¯¯¯¯¯|¯¯¯¯¯|¯¯¯¯¯| 
| uID | SubID* | Name | Foo | Bar | 
|-----|--------|------|-----|-----| 
| 1 | 23 | Boo | Goo | Shu | 
|_____|________|______|_____|_____| 

3)對於每一行我從表-A表中查詢我數據添加到表-B表。 (注意:當我添加數據時,此表已具有uID,SubID和Name

4)查詢被中斷/停止。然後,我將最新添加的行的uID *(在查詢停止前)保存到一個單獨的表(Table-C)中。

問:我怎樣才能開始查詢 - 中斷後(讓我們第二天說) - 再次,但我最後一次保存的前一天之後的下一行開始(的UID將可)。

例子:

SELECT * 
FROM $table_A 
ORDER BY uID ASC 
LIMIT $last_uID, COUNT $table_A (a.k.a "the last ID in the table") 

謝謝!

注:

  • 的子ID列連接到其他表&可以存在一次以上。
  • UID =唯一標識符(自動遞增)。

回答

1

那麼你知道最後添加的ID是什麼,因爲它會在table_B中。

SELECT * 
FROM $table_A 
WHERE uID > (select max(uID) from table_B) 
ORDER BY uID ASC 

UPDATE:

看來,這是需要什麼。

SELECT all columns 
FROM $table_A 
WHERE uID BETWEEN $last_uID_added AND $last_uID_in_table; 
+0

感謝您的答:我知道uID是什麼(寫在Q中)。我只是忘記說明一些數據已經存在 - 比如uID - 對此抱歉。我的問題是:我怎麼能說(在MySQL中)「選擇所有列從$ table_A WHERE uID = $ last_uID_added UNTIL $ last_uID_in_table」?我猜'max'在這種情況下不起作用,因爲已經存在所有的uID。 – kaiser

+1

選擇所有列FROM $ table_A WHERE u BETWEEN $ last_uID_added AND $ last_uID_in_table; –

+0

你能更新你的A嗎?那正是我在尋找的。 – kaiser