Autor Zpráva
vasam
Profil
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
INSERT ... ON DUPLICATE KEY UPDATE
Taps
Profil
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
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 :-).

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0