Autor | Zpráva | ||
---|---|---|---|
vasam Profil |
#1 · Zasláno: 30. 11. 2009, 22:29:41
Zdravím,
nevím si rady s jedním MySQL dotazem. Mám např. tabulku se sloupci A(varchar) a B(int). Potřeboval bych, aby se na straně databáze zjistilo, zda existuje nějaký řádek, který má určitou hodnotu ve sloupci A a podle toho se rozhodlo: 1) Takový řádek neexistuje, přidáme jej, do A dáme hledanou hodnotu a do sloupce B dáme 1 2) Řádek existuje a pouze k hodnotě ve sloupci B přičtem 1, tedy B+1 = A necháme napokoji Pokoušel jsem se zkrotit MySQL funkci IF(), bohužel ale marně :-( Předem díky za nápady ;-) |
||
ninja Profil |
#2 · Zasláno: 1. 12. 2009, 00:38:31
|
||
Taps Profil |
#3 · Zasláno: 1. 12. 2009, 07:21:58 · Upravil/a: Taps
vasam:
Tady je takový nástřel /* zjistíme zda existuje hodnota ve sloupci A */ $sql=mysql_query("select A from tabulka where sloupec='hodnota'"); /* pokud neni hodnota nalezena vložíme nový záznam */ if(mysql_num_rows($sql)==0){ mysql_query("insert into tabulka(A,B) values('hodnota','1')"); } else{ mysql_query("update tabulka set B=B+1 where sloupec='hodnota'"); } |
||
vasam Profil |
#4 · Zasláno: 1. 12. 2009, 07:58:40 · Upravil/a: vasam
díky moc za vyřešení
To s INSERT ... ON DUPLICATE KEY UPDATE je přesně to, co jsem si představoval. Taps: přes PHP řešení znám , ale rád řeším problémy přímo a s PHPčkem mi to připadalo jako zbytečné obcházení ;-). Navíc jsem byl přesvědčen, že to opravdu MUSÍ jít čistě přes MySQL :-). |
||
Časová prodleva: 14 let
|
0