Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [zapytanie] nie umiem tego nazwac...
Forum PHP.pl > Forum > Bazy danych > MySQL
slash^
Witam

Moj problem polega na tym, ze nie potrafie napisac zapytania, ktore by mi wybieralo z jakiejs kolumny kazdy rekord tylko raz, ale zawierajacy okreslona tresc, np.

mam tabele
id | tresc
1 | rekord_tekstowy_jeden
2 | rekord_dwa
3 | tekstowy_dwa_costam
4 | rekord_tekstowy_dwa
5 | costam_rekord

i teraz, chce obliczyc ile jest rekordow, ktore zawieraja w kolumnie tresc "rekord" -> w tym przypadku (4), oraz ile zawiera slowo "dwa" -> tutaj (3) dalej, zeby wybral slowo "costam" ALE jezeli kolumna, ta zostala juz policzona przy innym slowie (dwa) to nie powinna zostac policzona. Przypuscmy, ze liste slow ktore mialy by byc liczone mam w tabeli, czy da sie zrobic jedno zapytanie aby wynik byl mniej wiecej taki:
tabela:
"rekord" -> 4
"dwa" -> 3
"costam" -> 1

ew. jezeli sie tak nie da, to chociaz zeby w jednym zapytaniu moza bylo obliczyc ile jest poszczegolnych slow (razem z powtarzajacymi się)


help me sad.gif
popbart
Na razie tylko to wymyśliłem ale działa smile.gif
  1. SELECT IF(locate('rekord',pole)>0,'rekord',IF(locate('dwa',pole)>0,'dwa',IF(locate('costam',pole)>0,'costam','inne_rekordy'))) AS szukane,count(id)
  2. FROM tabela GROUP BY szukane

Jak coś wymyślę to się odezwę smile.gif
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.