Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: grupowanie z like
Forum PHP.pl > Forum > Bazy danych > MySQL
kicaj
Poszukuje rozwiazania zapytania SQL (MySQL), ktore polega na wyswietleniu rocznikow w ktorych zostaly opublikowane newsy (np. 2010, 2009, 2007, 2006, itd.):

  1. SELECT substring(created, 0, 4), count(*)
  2. FROM news
  3. GROUP BY substring(created, 0, 4)


Niestety, powyzsze nie dziala jak powinno (kombinacje z LIKE tez nie pomoglo).


Dodam ze pole 'created' jest typi DATETIME
bpskiba
Cytat(kicaj @ 3.05.2012, 10:12:02 ) *
Poszukuje rozwiazania zapytania SQL (MySQL), ktore polega na wyswietleniu rocznikow w ktorych zostaly opublikowane newsy (np. 2010, 2009, 2007, 2006, itd.):

  1. SELECT substring(created, 0, 4), count(*)
  2. FROM news
  3. GROUP BY substring(created, 0, 4)


Niestety, powyzsze nie dziala jak powinno (kombinacje z LIKE tez nie pomoglo).
Dodam ze pole 'created' jest typi DATETIME

  1. SELECT YEAR(created),COUNT(1)
  2. FROM news
  3. GROUP BY YEAR(created)


lub
  1. SELECT LEFT(created,4),COUNT(1)
  2. FROM news
  3. GROUP BY LEFT(created,4)



Twoje zapytanie też zadziała prawidłowo gdy wstawisz SUBSTRING(created, 1,4 )
kicaj
Rzeczywiście, moje zapytanie działa jeśli zamienimy na "...created, 1, 4...".

Ale z wykorzystaniem funkcji YEAR jakoś bardziej mi odpowiada:)
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.