![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 235 Pomógł: 0 Dołączył: 18.11.2006 Skąd: gorzów Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Potrzebuję zrobić zapytanie SQL, które będzie albo dodawać rekordy (jeżeli $search w kolumnie name nie istnieje) lub aktualizować (jeżeli $search w kolumnie name istnieje). Co prawda mógłby to zrobić schematem Sprawdzenie istnienia $search w name funkcją SELECT i count (w php) -> if sprawdzający wartość count i wrzucający odpowiednie zapytanie INSERT INTO bądź UPDATE. Problem polega na tym, że sama instrukcja SELECT bez wskazania konkretnego indeksu wykonuje się zdecydowanie za długo (w tabeli jest ponad 600 tys rekordów). Myślałem o REPLACE INTO, ale zauważyłem, że albo dodaje nowy, albo zastępuje stary nowymi wartościami. A potrzebuję wykonać dodatkowo polecenie count=count+1, czyli stary count nie może być zastąpiony, ponieważ stale będzie nosił wartość 1, a to ma zliczać. Jest możliwość rozwiązania tej sprawy jednym zapytaniem? Pozdrawiam, Bartek. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Średnio zrozumiałem o co dokładnie chodzi z tym szukaniem, jakbyś tak dokładniej wytłumaczył.
Ja kiedyś miałem podobny problem, chciałem sprawdzić czy istnieje rekord, jeżeli istnieje dodać wartość a jeżeli nie to go dopisać. W tym celu napisałem odpowiednią funkcję w MySQL, którą wywoływałem zapytaniem z potrzebnymi danymi i ona się zajmowała resztą, tym sposobem ograniczyłem liczbę zapytań. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 00:33 |