| 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: 17 let
|
|||
0