Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL]Indeks w MySQL
djjbenus
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 22.05.2010

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
SmokAnalog
post
Post #2





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Poczytaj: http://blog.mwojcik.pl/2009/07/06/mysql-in...-i-klucze-obce/
Go to the top of the page
+Quote Post
xavierek
post
Post #3





Grupa: Zarejestrowani
Postów: 92
Pomógł: 2
Dołączył: 22.03.2009

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
mmmmmmm
post
Post #4





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

Ostrzeżenie: (0%)
-----


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





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


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

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: 22.08.2025 - 17:49