Post
#1
|
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza |
Heja,
jak w PostgreSQL 8.3 odczytać rozmiar tablicy? W 8.4 mamy już funkcję array_length(), ale w 8.3 jej nie ma. Albo inaczej: mając ciąg: Kod a/b/c chciałbym pobrać "poziom zagłębienia" czyli ilość elementów po rozdzieleniu po "/" (w tym przypadku 3). Przeglądałem funkcje na stringach, ale również nie znalazłem niczego pomocnego. Pozdrawiam, pion // Edit: Na razie napisałem sobie taką funkcję, może komuś się przyda:
Olałem drugi parametr bo nie jest mi potrzebny. Ten post edytował phpion 26.05.2010, 08:08:21 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza |
Hmmm, a jak Twoje rozwiązanie sprawdzi się przy wybieraniu rekordów z tabeli oraz określaniu ich poziomu zagłębienia? W tabeli mam kolumnę name, a niej ciągi wpisane właśnie jako a/b/c i do każdego rekordu chciałbym dołączyć głębokość zagnieżdżenia.
W międzyczasie zobaczyłem, że edytowałeś swojego posta dopisując drugie rozwiązanie. Ono jest OK! Porównałem czasy wykonania Twojego, oraz mojego bazującego na własnej funkcji - Twoje jest 2x szybsze! Dzięki! // Edit: A to jest jeszcze szybsze:
Zmieniłem regexp_split_to_array na string_to_array i czas wykonania spadł o ~0.2 ms - zawsze to coś! (IMG:style_emoticons/default/smile.gif) Ten post edytował phpion 26.05.2010, 08:43:09 |
|
|
|
phpion [PostgreSQL 8.3] Rozmiar tablicy 26.05.2010, 07:52:26
wookieb [SQL] pobierz, plaintext SELECT count(*) F... 26.05.2010, 08:29:19
wookieb Pomijając już kwestię tablic, to parametr depth (c... 26.05.2010, 08:51:30
phpion No u mnie akurat nie jest on często wykorzystywany... 26.05.2010, 10:42:01
cojack Imo dla mnie bezsensu jest tworzenie ścieżki na ta... 27.05.2010, 17:04:33 ![]() ![]() |
|
Aktualny czas: 10.06.2026 - 21:35 |