[英]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.