Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL]Problem z SQL UPDATE, zmiana kolejności updatowania
Greg23
post
Post #1





Grupa: Zarejestrowani
Postów: 120
Pomógł: 0
Dołączył: 6.04.2012

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


Mam taką tabelę:

id imie nazwisko update
1 Adam Nowak
2. Adam Nowak
3. Adam Nowak

Teraz chciałbym updatować kolumny wg zasady:

  1. UPDATE `table` SET `update`='aaa' WHERE imie=adam LIMIT 2";


To zadziała w ten sposób, żę dla 1 i 2 rekordu kolumna update będzie miała wartość 'aaa' a 3 się nie zmieni.
Jak spowodować, żeby update działał od końca, tzn ustawił 'aaa' dla kolumny 2 i 3 pomijając 1 questionmark.gif

Próbowałem przy updacie dać order by id desc, ale tak to nie zadziała.
Jak to zrobić ?


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


- pobierasz listę użytkowników z podanym parametrem czyli SELECT id WHERE imie=adam ORDER BY id DESC LIMIT 2
- w pętli tworzysz zapytanie
  1. while() {
  2. $query .= ', '.$row['id'];
  3. }

tak aby można było użyć WHERE id IN ($query)

lub
  1. UPDATE `table` SET `u` = 'aaa' WHERE id IN ((SELECT id WHERE imie=adam ORDER BY id DESC LIMIT 2))

(szczerze nie wiem czy ten sposób zadziała tongue.gif - nie powinien ale warto spróbować)

Ten post edytował CuteOne 27.08.2012, 08:14:25
Go to the top of the page
+Quote Post
hateman
post
Post #3





Grupa: Zarejestrowani
Postów: 86
Pomógł: 18
Dołączył: 28.04.2008
Skąd: Poznań

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


A co to za cudzysłów tam na końcu zapytania?
U mnie zadziałało coś takiego:

  1. UPDATE `table` SET `update`='aaa' WHERE imie=adam ORDER BY `id` DESC LIMIT 2
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 17:13