Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] SELECT WHERE id
Spirit86
post
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:
  1. SELECT
  2. t1.naglowki
  3. FROM
  4. (
  5. SELECT
  6. @rownum := @rownum +1 AS rownum, naglowki
  7. FROM xn_layout WHERE id='1'
  8. ORDER BY id ) t1
  9. WHERE
  10. id =
  11. CASE WHEN t1.rownum=0 THEN
  12. '1'
  13. ELSE
  14. '10'
  15. END

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)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
pmir13
post
Post #2





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.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.09.2025 - 05:28