Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Proste działania matematyczne przy UPDATE
Forum PHP.pl > Forum > Przedszkole
Welon
Tak jak w opisie.
Zastanawiam się, czy są możliwe jakieś skróty matematyczne przy funkcji UPDATE jak w JS czy PHP np. var+=2 daje nam to samo co var=var+2. albo var++ daje to samo co var=var+1.
skowron-line
A próbowałeś któreś z tych zastosować questionmark.gif Po co pytasz skoro możesz sam sobie sprawdzić.
cojack
Nie możesz tak zrobić na samym select. Coś takiego można by zrobić w pl/sql a dokładniej w pl/pgsql (bo ten znam) np:


  1. CREATE FUNCTION "someTableUpdateFunction" RETURNS TRIGGER AS $BODY$
  2. BEGIN
  3. NEW."someField" := OLD."someField" + 2;
  4. RETURN NEW;
  5. END;
  6. $BODY$ LANGUAGE 'plpgsql';
  7.  
  8. CREATE TRIGGER "someTableUpdateTrigger"
  9. BEFORE UPDATE ON "someTable"
  10. FOR EACH ROW EXECUTE PROCEDURE "someTableUpdateFunction"();


I gra muzyka.


@edit
yhy widzę że z armatą na wróbla wyskakuje, ehh takie proste rzeczy mi z bania wywala ;]
VGT
  1. UPDATE `tabela` SET `pole` = `pole` + 1 WHERE `inne_pole` = "oczekiwane" LIMIT 1;
kefirek
  1. SET @nr = 0;
  2. UPDATE tabela SET kolumna = @nr:=@nr+1
Welon
Cytat(skowron-line @ 31.01.2010, 20:42:56 ) *
A próbowałeś któreś z tych zastosować questionmark.gif Po co pytasz skoro możesz sam sobie sprawdzić.

Próbowałem i nie działają. ;]
Dlatego pytam czy jest JAKIŚ sposób.
Ja właśnie robię to cały czas jak VGT.
Cytat(VGT @ 1.02.2010, 10:59:22 ) *
  1. UPDATE `tabela` SET `pole` = `pole` + 1 WHERE `inne_pole` = "oczekiwane" LIMIT 1;

z tym że nie pomyślałem, żeby dodać LIMIT. Dzięki za sugestię. ;]
VGT
Akurat limit to juz kosmetyka, jesli sekcja where zapewnia uwzglednienie tylko jednego rekordu. winksmiley.jpg Ja akurat dodaje go z przyzwyczajenia nawet w selectach, ktore wyciagaja cos po kluczu glownym.

Sadzilem, ze tego nie znasz i ogolnie pytasz, gdyz nie zakladalem, ze mozna jeszcze dalej szukac usprawnien w stylu: set `pole`++ smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.