簡體   English   中英

mysql中的批量更新技術

[英]Bulk update technique in mysql

我的mysql數據庫中有兩個表。 我停用了登錄日期超過2天的用戶

// users
--------------------------
| id | user     | active |  // + 10 other fields
--------------------------
| 1  | John Doe | 1      |
| 2  | Ron Gore | 1      |
--------------------------

// login
-----------------------------
| id | user_id | date       |
| 1  | 1       | 2014-11-10 |
| 2  | 2       | 2014-11-03 |
-----------------------------

到目前為止,我已經在PHP中做了大量工作。 通過一個查詢,我獲得了所有user_id ,其中date早於2天,然后通過mysqli->fetch()對每一行進行UPDATE查詢,並將該用戶的活動狀態設置為0。

現在,我想使用批量方法將其放在一個查詢中(朋友推薦給我,因為我有10.000+用戶),但是我不確定查詢的外觀。

$query = ""; // help me with this line of code
$stmt = $mysqli->prepare($query);
$stmt->execute();

您能幫我查詢嗎,導致我嘗試過的所有事情都無法正常工作。

合並查詢。 您要在第一個查詢中選擇ID。 因此,將其放在更新查詢的where子句中。

update users set active = 0 where active = 1 and id in (select user_id from login where date <= now() - interval 2 day)

這將停用所有登錄日期早於2天的用戶。

暫無
暫無

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

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