这是您的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