Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] struktura drzewa, poziomy, ilość elementów
Forum PHP.pl > Forum > Bazy danych > MySQL
lenczewski
witam, mam taką tabelę
  1. CREATE TABLE `dane` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `pozycja` varchar(255) NOT NULL DEFAULT '',
  4. `system` varchar(64) NOT NULL DEFAULT '',
  5. `tag1` varchar(255) NOT NULL DEFAULT '',
  6. `dane` text,
  7. `typ` varchar(255) DEFAULT NULL,
  8. `plik` int(11) NOT NULL DEFAULT '0',
  9. `atrybuty` text,
  10. `element_pusty` enum('y','n') NOT NULL DEFAULT 'n',
  11. UNIQUE KEY `id` (`id`)
  12. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=16 ;

oraz dane
  1. (12, '0,1', 'TREE', 'aDSsad', 'saDASDASD', 'Czas', 21, '', 'n')
  2. (13, '0,2', 'TREE', 'ASDASDASD', 'ASDASDADA', 'Czas', 21, '', 'n')
  3. (14, '0,3', 'TREE', 'sadsad', 'asdasdasd', 'Czas', 21, '', 'n')
  4. (15, '0,2,1', 'TREE', 'sadads', 'asdasdasdasd', 'Czas', 21, '', 'n')


Najbardziej interesuje mnie kolumna "pozycja" (np. '0,2,1'),a dokładnie ilość elementów głównych.
Wyjaśniam dokładniej
Kod
- 0,1
- 0,2
  - 0,2,1
- 0,3
  - 0,3,1
  - 0,3,2
    - 0,3,2,1
    - 0,3,2,2
  - 0,3,3

Chciałbym stworzyć zapytanie które zwróci mi albo liczbę elementów głównych (w grupie 0, w tym przypadku 3), albo np. maksymalną wartość (dla grupy 0,3,2 wartość po przecinku to 1 i 2 wiec powinno zwrócić wartość 2)

Fabian
mysz
Jeśli chcesz porządne drzewka zrobić, to polecam:
depesz.com/various/various-sqltrees.php metoda 5

A co do Twojej wersji:
Cytat
zapytanie które zwróci mi albo liczbę elementów głównych (w grupie 0, w tym przypadku 3),


  1. SELECT COUNT(`id`) AS `quant` FROM `dane` WHERE `pozycja` RLIKE '^0,[0-9]+$'


Cytat
maksymalną wartość (dla grupy 0,3,2 wartość po przecinku to 1 i 2 wiec powinno zwrócić wartość 2)


  1. SELECT MAX(`pozycja`) FROM `dane` WHERE `pozycja` RLIKE '^0,3,2,[0-9]+$'


Z ostatnim to jak pokombinujesz to i w mysql wyciągniesz ostatnią cyfrę (polecam POSITION() i SUBSTR()).

edit:
Albo nieznane mi wcześniej: SUBSTRING_INDEX().
lenczewski
Dzięki za zapytania i za link do artykułu - pomogło.
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.