Efektivní zobrazení dat v databázi pomocí PHP

Efektivní zobrazení dat v databázi pomocí PHP
« kdy: 23. 06. 2022, 09:43:52 »
Zdravim.

Ak mam v tabulke len jeden stlpec a obsahuje data A,B,C,A,A,B,C ako ich efektivne spocitat ked neviem hodnotu A,B,C ?
« Poslední změna: 23. 06. 2022, 10:13:18 od Petr Krčmář »


Re:Efektivní zobrazení dat v databázi pomocí PHP
« Odpověď #1 kdy: 23. 06. 2022, 10:21:42 »
ak som to spravne pochopil, tak v bunke tabulky je zoznam hodnot oddelenych oddelovacom. potom staci vytiahnut hodnotu z tabulky, prehnat ju v PHP funkciou explode a vysledkom je pole samostanych hodnot. nasledne je s nimi mozne robit dalsie operacie

dalsia moznost je si to splitnut na urovni sql dotazu. ak je to MySQL tak potom sa pozriet na funkciu SUBSTRING_INDEX()

Re:Efektivní zobrazení dat v databázi pomocí PHP
« Odpověď #2 kdy: 23. 06. 2022, 10:25:27 »
co znamená "spocitat" a jaky je format tech A B C (variabilni delka, pritomnost znaku ","), jsou oddelene znakem ","?
A co z toho chces pocitat, ked ich nevis (neni tam nic ineho :D,E,F)

Re:Efektivní zobrazení dat v databázi pomocí PHP
« Odpověď #3 kdy: 24. 06. 2022, 03:47:26 »
Za predpokladu ze to mas ulozene 1 hodnota na 1 zaznam, tak proste:
Kód: [Vybrat]
SELECT stlpec, count(stlpec) FROM tabulka GROUP BY stlpec;

za predpokladu ze stlpec je varchar a su v nom CSV zaznamy, tak miesto riesenia efektivity dotazu riesit efektivitu struktury, pretoze na tomto nebude efektivny ziadny dotaz.

robin martinez

  • *****
  • 1 138
  • Have you hugged your toilet today?
    • Zobrazit profil
    • Null Storage
    • E-mail
Re:Efektivní zobrazení dat v databázi pomocí PHP
« Odpověď #4 kdy: 24. 06. 2022, 10:59:00 »
nevim, jestli to chapu spravne, ale nacist radek do PHP a tam:
Kód: [Vybrat]
count(explode(',', $sloupec))
One machine can do the work of fifty ordinary men. No machine can do the work of one extraordinary man.

I do Linux, Hardware and spaghetti code in PHP, Python and JavaScript


Re:Efektivní zobrazení dat v databázi pomocí PHP
« Odpověď #5 kdy: 24. 06. 2022, 13:45:16 »
Pripadne je mozne, ak ide o postgres:

Kód: [Vybrat]
WITH
hodnoty AS (
    SELECT string_to_table(csv,',') AS hodnota
    FROM tabulka
)
SELECT hodnota, count(hodnota)
FROM hodnoty
GROUP BY hodnota

To je v prostredi ktore je optimalizovane na spracovanie dat. Riesit to v textovom preprocesori je najmenej efektivna cesta (aby nedoslo k omylu tak php pouzijem pomerne casto, ak mu zodpoveda usecase...)