簡體   English   中英

MySQL-更新與我選擇相同的記錄

[英]MySQL - Update same record that I am SELECTing

我正在編寫網絡爬蟲。 所有鏈接都存儲在MySQL數據庫中。 因為我將在多個節點上運行搜尋器,所以我需要盡快將URL設置為“正在搜尋”,以保持效率。

我的Web搜尋器是用C#編寫的。 現在,它將下載URL和ID,然后將URL設置為使用ID進行爬網。 問題是需要兩個不同的查詢。 有什么辦法可以將它們組合在一起嗎?

這是我當前的代碼:

string stm = "SELECT * FROM pages WHERE IsCrawled = 0 LIMIT 1;";
MySqlCommand cmd = new MySqlCommand(stm, conn);
cmd.ExecuteScalar();
id = -1;
using (rdr = cmd.ExecuteReader())
{
    if (rdr.Read())
    {
        URL = rdr.GetString(1);
        id = rdr.GetInt32(0);
    }
}
MySqlCommand update = new MySqlCommand("UPDATE pages SET IsCrawled = 1 WHERE ID = '"+id+"'", conn);
update.ExecuteScalar();

同樣,我想將查詢組合在一起。

要進行更新並全選,您可以執行此操作,但是,我不確定您是否可以在程序流的上下文中完成此工作。

UPDATE pages SET IsCrawled = 1 WHERE ID IN
(SELECT ID FROM pages WHERE IsCrawled = 0 LIMIT 1;)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM