Łukasz S.

Łukasz S. Programista
Aplikacji
Internetowych

Temat: UPDATE kolejności w tabeli SQL ze zmiennej

Witajcie,
Czy jest możliwość aby otrzymując zmienną $newOrderArray typu [1, 4, 6, itd..] uprościć UPDATE dla kolumny OrderByNr ?
Standardowo robię SELECT ... ORDER BY OrderByNr później na otrzymanych danych robię UPDATE ... SET OrderByNr = $newOrderArray[$iIteracyjne] WHERE ID = $zmiennaFromSelect[$iIteracyjne]

Ale przy paru tysiącach informacji otrzymuję sporo poleceń do bazy..
Łukasz Schabek

Łukasz Schabek Architekt Rozwiązań

Temat: UPDATE kolejności w tabeli SQL ze zmiennej

Możesz złożyć zapytanie typu:


UPDATE foo f SET OrderByNr = CASE
WHEN id = 1 THEN 1
WHEN id = 2 THEN 3
WHEN id = 3 THEN 6
END
Łukasz S.

Łukasz S. Programista
Aplikacji
Internetowych

Temat: UPDATE kolejności w tabeli SQL ze zmiennej

Nie do końca o to chodzi - Bardziej chodzi o to aby z wstępnego SELECT'a z ORDER ustawić nową wartość w kolumnie OrderByNr z posiadanej tablicy.
Łukasz Schabek

Łukasz Schabek Architekt Rozwiązań

Temat: UPDATE kolejności w tabeli SQL ze zmiennej

A gdzie jest tablica z nowymi wartościami? W PHP? Jakiej bazy używasz? Może wklej zapytanie i kawałek skryptu.

konto usunięte

Temat: UPDATE kolejności w tabeli SQL ze zmiennej

Z tego co zrozumialem to moze chodzi o to zebys zrobil:

UPDATE .. SET OrderByNr = $newOrderArray[$iIteracyjne] WHERE ID = IN (1,3,5,6) czyli te dane z tablicy ? ale nie wiem czy o to chodzi

Czyli najpierw z tablicy zrob sobie stringa tak zeby petla for zbudowac
$id = 1,4,5,6,8,7,...,1344,1255 no i tak zbudowany string wstaw w nawiasy
IN ($id)

chociaz prosciej moze zrobic
UPDATE .. SET OrderByNr = $newOrderArray[$iIteracyjne] WHERE ID = IN (SELECT id FROM ... ORDER BY OrderByNr)

ale order by w drugim podzapytaniu nie jest juz koniecznyŁukasz Kowalski edytował(a) ten post dnia 17.08.11 o godzinie 11:34

Następna dyskusja:

[SQL Server] Zrzucanie erro...




Wyślij zaproszenie do