![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 607 Pomógł: 23 Dołączył: 8.09.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Witam
Chcę zrobić coś takiego: Pobierz z tabeli SELECT FROM tabela WHERE id=1 ( OR id = 10 ->jeżeli nie ma rekordów o id=1) Napisałem:
Jednak powyższy kod nie zwraca rekordów. Może da się to zrobić jakoś prościej? (nie chce postów typu: zadaj 2 pytania w php) -------------------- Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 282 Pomógł: 89 Dołączył: 12.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 607 Pomógł: 23 Dołączył: 8.09.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
to mi pobierze o id 10 lub id 1 czyli załóżmy 2 rekordy, jeżeli oba istnieją... Chcę jeżeli istnieje rekord o id=10 pobrał JEDEN rekord o id=10, jeżeli nie ma takiego niech pobierze ten o id=1
-------------------- Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Przecież masz tam LIMIT 1 - mogłeś sprawdzić to zapytanie w praktyce a nie dyskytować teoretycznie. Z teorią jak widać u Ciebie nie za dobrze (bez urazy)
![]()
Powód edycji: [nospor]:
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 607 Pomógł: 23 Dołączył: 8.09.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Przecież masz tam LIMIT 1 - mogłeś sprawdzić to zapytanie w praktyce a nie dyskytować teoretycznie. Z teorią jak widać u Ciebie nie za dobrze (bez urazy) ![]() To jest ułomne zastosowanie i nie uniwersalne. Gdy mam id nie jest unikatowe i mam np 10 rekordów z id=10 i 8 z id=1. Chce pobrac tylko te z id=10 -------------------- Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat To jest ułomne zastosowanie i nie uniwersalne Podałęś konkretną sytuację, podano ci najlepsze rozwiązanie dla tej sutyacji. Co w tym ułomnego?Cytat Gdy mam id nie jest unikatowe I teraz dopiero precyzujesz. W świetle nowych faktów podane rozwiązanie faktycznie jest ułomne, Nie można było tak od razu?W życiu bym nie przypuszczał, że pole o nazwie ID może nie być unikalne... no ale co kraj to obyczaj ![]() Tak na szybko:
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 282 Pomógł: 89 Dołączył: 12.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@pmir13 masz może jakąś dużą tabelę, gdzie można by czasowo sprawdzić nasz metody? Zastanawiam się nad szybkością obu rozwiązań
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 607 Pomógł: 23 Dołączył: 8.09.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
@pmir13: to rozwiązanie mi się podoba!
![]() ![]() @nospor: jak bed mial troche czasu to stworze wieksza baze danych i sprawdze obie metody. pzdr -------------------- Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 282 Pomógł: 89 Dołączył: 12.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
Na tabeli film_actor i zewnętrznym kluczu film_id z bazy sakila (darmowa testowa baza mysql do ściągniecia) moje zapytanie wykonuje się u mnie na moim domowym gracie w obu przypadkach 0.0008s zwracając po około 10 rekordów ze wszystkich ponad 5tys. Dla porównania zapytanie typu "SELECT 1" wykonuje się 0.0004s, czyli tylko dwa razy szybciej.
To oczywiście nie jest duża baza, ale po explainie i wykorzystaniu kluczy i ilości porównań widać, że niewiele się zmieni gdy liczba dojdzie do kilku milionów. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 09:33 |