假設我有一個表,表:我怎麼能在PHP中執行這個基本的表查詢?
NAME ID ...
m -1 ...
f -1 ...
g -1 ...
b -1 ...
z -1 ...
而且我希望把它變成:
NAME ID ...
f 1 ...
g 2 ...
m 3 ...
b -1 ...
z -1 ...
你可能得到的想法:
- 選擇第3行從原始表格(保留順序)
- 按NAME對選定的行進行排序列。
- 更新選定的行ID與他們在新表中的位置(保持其餘未選中的行在其原始位置)。
所以得到了排序,以(f, g, m)
和(b, z)
保持(b, z)
。
以下是我正在試圖做到這一點在PHP中:
$count = 0;
$query = "UPDATE TABLE SET ID = $count:= $count + 1 ORDER by NAME DESC LIMIT 3";
mysqli_query($con, $query);
但我不認爲我可以先走一步,計數器加存儲這樣它的價值。有什麼建議?
您總是可以使用select查詢來查詢前3行並獲取名稱只是因爲ID目前是不相關的。然後使用'sort()'函數對數組進行排序。完成之後,調用'array_values()'方法重新綁定數組鍵。現在,您可以使用循環來構建查詢。 – kfirba