Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zamiana miejscami rekordów
shpyo
post
Post #1





Grupa: Zarejestrowani
Postów: 574
Pomógł: 2
Dołączył: 13.04.2004
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Witam,
czy wiem ktoś czy jest jakaś komenda w mysql która zamienia miejscami ze sobą dwa rekordy (np. o id=2 i id=5) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

php mogę to zrobić ale to będzie aż 4 zapytabia do bazy:
- zanaczenie rekordu o id=2
- zanaczenie rekordu o id=5
- zapisanie tego co jest w 2 na 5
- zapisanie tego co jest w 5 na 2

Można to zrobić szybciej w mysql?

pozdr,
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
DeyV
post
Post #2





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




  1. UPDATE tabela SET
  2. id = ( IF( id==5, 2, 5) )
  3. WHERE id IN (2, 5)


Ale swoją drogą - jest to raczej mało logiczne żądanie, i naprawdę trudno mi wymyślić sytuację, gdzie taka operacja byłaby konieczna.

Niestety - rozwiązanie takie nie zadziała (chyba (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ) jeżeli Id jest kluczem głównym, czyli unikalnym.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 07:54