Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL]Indeks w MySQL
Forum PHP.pl > Forum > Przedszkole
djjbenus
Witam,

jestem w trakcie pisania pracy inżynierskiej i mam pytanie. Czy w mysql-u można się odwołać po indeksie(int) do pola w tabeli bazy danych?

czekam na szybkie odpowiedzi
pozdrawiam
SmokAnalog
Poczytaj: http://blog.mwojcik.pl/2009/07/06/mysql-in...-i-klucze-obce/
xavierek
z tego co wiem mysql sam wykozystuje najabardziej przydatny index jaki jest zrobiony oraz przy okazji ma opcje optymalizacji jezeli baza byla uzywana podpowiada jakie indexy porobic
mmmmmmm
Pytającemu zupełnie nie o to chodzi...
Załóżmy, że ma tabelę: osoby(id, imie, nazwisko, pesel, ...), to czy może się do kolumny `imie` odwołać używając indeksu (słownictwo z programowania, z kolekcji lub tablic) 1 (lub 2, jeśli indeksacja następuje od 1).
Otóż, w samym SQL - nie, nie można. W innych językach... W jednych tak, w innych nie - zależy w jakich i jakich obiektów używasz...
A i z tym SQL też są dwa wyjątki. Numer kolumny możesz użyć przy grupowaniu (GROUP BY 2, 3, imie - grupowanie wg 2 i 3 kolumny oraz kolumny `imie` - można dowolnie 'mieszać'), i przy sortowaniu - ORDER BY. Ale też nie we wszystkich DBMS-ach. W MySQL - tak.
SmokAnalog
@mmmmmmm chyba rzeczywiście o to chodziło. Bardzo dobrze, że tego nie ma w MySQL, bo to by rodziło dziwne pomysły u początkujących. Struktura dobrze zaprojektowanej bazy danych jest względnie stała i do pól powinno się odwoływać po nazwach. Z drugiej strony, indeksów liczbowych można używać w ORDER BY, sortowanie odbywa się wtedy po odpowiednim polu (wyrażeniu) z SELECT. Mimo wszystko nie polecam, lepiej używać aliasów, np.:
  1. SELECT `imie`, `nazwisko`, month(`data_urodzenia`) AS `miesiac`
  2. ORDER BY `miesiac` ASC

Zamiast:
  1. SELECT `imie`, `nazwisko`, month(`data_urodzenia`) AS `miesiac`
  2. ORDER BY 3 ASC
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.