這是您的PHP玩雜耍的人的問題。 我想用普通的ol'mysql_ *函數的PHP。根據相應的行更新一個遞增的值
我有以下MySQL表:
+-----+-----------------+ | id | thread | +-----+-----------------+ | 14 | 01/ | | 14 | 02/ | | 14 | 03/ | | 15 | 01/ | | 22 | 01/ | | 24 | XXX | | 24 | XXX | | 24 | XXX | | 24 | XXX | | 32 | XXX | | 32 | XXX | +-----+-----------------+
的 「XXX」 值是我的決策。我想該表更改(UPDATE)這一個:
+-----+-----------------+
| id | thread |
+-----+-----------------+
| 14 | 01/ <- |
| 14 | 02/ |
| 14 | 03/ |
| 15 | 01/ <- |
| 22 | 01/ <- |
| 24 | 01/ <- |
| 24 | 02/ |
| 24 | 03/ |
| 24 | 04/ |
| 32 | 01/ <- |
| 32 | 02/ |
+-----+-----------------+
在「ID」字段的每一個新值(其中「< - 」是,我的決策,也有),「線程「字段值必須重置爲」01 /「並繼續遞增,直到找到新的」id「值。
我試着用COUNT(id)查詢以某種方式增加。我試圖存儲在數組中。我還想到了mysql_data_seek()。唉,我似乎沒有把它關掉。
我得到了「線程」的格式正確,但:
$thread = $i < 10 ? "0$i" : $i;
所以,如果它比10大,它沒有得到一個前導零。但這只是有趣的一部分。
任何幫助,將不勝感激。
感謝
我會試試這個。似乎太複雜,錯過。 「單獨提供SET和UPDATE查詢」是什麼意思? – nevvermind 2010-10-16 22:48:41
你不能發送它們作爲一個查詢,但作爲3('mysql_query('SET ...'); mysql_query('SET ...'); mysql_query('UPDATE ...');'。它使用用戶定義的變量,主要的複雜性來自於與SQL的對抗:除非它是表達式的一部分,否則不能「設置」變量,因此簡單的'@counter:= 1,@oldid:= id'已經成爲令人費解的表達式具有相同的結果:'@counter:=(@oldid:= id)/ id',這可能會導致一個浮點數,所以我們轉回到整數。 – Wrikken 2010-10-16 23:15:37
不錯。你能解釋或發送一個鏈接多久將忍受MySQL變量@counter:直到查詢結束,php腳本或重置mysql服務器結束?我找不到它。 – 2010-10-17 18:59:46