![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 11.07.2006 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem jak skonstruować zapytanie do bazy tak, żeby sprawdziło, czy rekord o podanych danych istnieje w tabeli (*1) i w zależności od tego zaktualizuje go (*2) lub wstawi nowy (*3)
*1 Kod SELECT count(*) FROM tbl WHERE UID = {uid} AND AID = {aid}; *2 Kod UPDATE tbl SET Cena = {cena} WHERE UID = {uid} AND AID = {aid}; *3 Kod INSERT INTO tbl VALUES (null, {uid}, {aid}, {cena}); Mam na myśli coś takiego Kod IF (SELECT count(*) FROM tbl WHERE UID = {uid} AND AID = {aid}) > 0 THEN UPDATE tbl SET Cena = {cena} WHERE UID = {uid} AND AID = {aid} ELSE INSERT INTO tbl VALUES (null, {uid}, {aid}, {cena}) END IF {uid}, {aid}, {cena} - jakies dane przekazane z php'a Niestety takie coś nie działa i wyrzuca błąd, a nie chcę do tego angażować php'a bo wg założenia to MySQL ma zająć się tą sprawą |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 11.07.2006 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Używanie googla nie jest takie trudne ale nie zawsze on daje wynik taki jak by się chciało, a poza tym trzeba wiedzieć jak sprecyzować zapytanie. Ja szukałem konstrukcji IFa, ale rezultaty działania były nijakie.
REPLACE jakimś cudem dorzucało mi następny wpis więc sobie darowałem. Zastosowałem składnię Kod INSERT INTO tbl VALUES (NULL, '{uid}', '{aid}', '{cena}', NOW()) ON DUPLICATE KEY UPDATE CenaL='{$cena}', Data = NOW(); i to działa bardzo ładnie i dziękuję serdecznie wam obu a w szczególności nrafal za odpowiedni link |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 01:50 |