簡體   English   中英

閱讀下一個或上一個mysql行並更新當前行,而無需使用游標或自動遞增的值

[英]Read next or previous mysql rows and update current row without using cursors or auto-incremented value

我需要處理mysql表中的一些記錄。問題是可增量ID不是一種可靠的方式來知道下一個或上一個記錄是什么,因為某些記錄已被刪除。

我的表有三個字段。

ID,編號,狀態

我想一次讀取一個數字,我不介意每次想讀取下一個或上一個數字時都從數據庫中獲取它。一旦我得到了這個數字,我想將其加倍並將值寫入列中狀態。

使用游標會很好,但游標不允許我更新正在讀取的基礎表,是否有解決方案可以讓我讀取下一個和上一個值,同時又可以更新當前行?

謝謝。

我並不是說這是最好的方法,但是可以這樣做:

$rows=SELECT id FROM <table>;

foreach($rows as $row){
  $prev=SELECT number FROM <table> WHERE id < $row ORDER BY id DESC LIMIT 1;
  $next=SELECT number FROM <table> WHERE id > $row ORDER BY id ASC LIMIT 1;
  if($prev && $next)
    UPDATE <table> SET = 2($prev+$next) WHERE id=$row;
}

好吧,可以通過游標實現類似的操作。

暫無
暫無

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

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