|
Тема |
Re: Кое? [re: Pitasht] |
|
Автор |
salle (един такъв) |
|
Публикувано | 14.04.06 12:43 |
|
|
А .. вчера ми се беше събрало много та съм проспал че опитваш UPDATE x .. (SELECT .. FROM x)
а това засега не се поддържа нито в 4.1 нито в 5.0
Ето ти един вариант който е "хакерски" и освен това изисква да инициализираш променливата преди заявката така, че пак не е една заявка а две:
mysql> select * from Sites;
+--------+------+
| SiteIn | Rank |
+--------+------+
| 5 | 2 |
| 3 | 3 |
| 10 | 1 |
+--------+------+
3 rows in set (0.00 sec)
mysql> SET @r = 0; UPDATE Sites SET Rank= (@r:=@r+1) ORDER BY SiteIn;
Query OK, 0 rows affected (0.00 sec)
Query OK, 2 rows affected (0.00 sec)
Rows matched: 3 Changed: 2 Warnings: 0
mysql> select * from Sites ORDER BY Rank;
+--------+------+
| SiteIn | Rank |
+--------+------+
| 3 | 1 |
| 5 | 2 |
| 10 | 3 |
+--------+------+
3 rows in set (0.00 sec)
Най добре е да го реализираш с TRIGGER защото тогава промяната ще става автоматично при промяна на SiteIn ама за целта ти трябва 5.0
|
| |
|
|
|