Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Select count
Forum PHP.pl > Forum > Bazy danych > MySQL
mimol
Gdzieś czytałem, że aby pobrać liczbę rekordów w tabeli, to po selekcie podaje się jakąś stałą (PRIMARY.... jakoś tak)
Wiem, że można
SELECT COUNT(id) FROM table, jednak ktoś pisał, że można to ładniej zrobić, a nie potrafię tego znaleźć
skowron-line
A co chcesz osiągnąć questionmark.gif Zliczyć wszystkie elementy z tabeli questionmark.gif Pogrupować questionmark.gif
GROUP BY
HAVING
mimol
Nie po prostu chcę dostać ilość rekordów w tabeli
Mozna tak
SELECT COUNT(id) FROM table
A mozna zamiat id wpisać jakąś stałą mysql (tylko nie pamiętam nazwy)
Damonsson
Może chodzi Ci o to: SQL_CALC_FOUND_ROWS ?

Ale nie jest to ładniejsze ani wydajniejsze. Co Ci przeszkadza w SELECT COUNT?
mimol
niie, zamiast 'id' podaje sie stałą, PRIMARY_COS
Szukając odpwiedzi na moje pytanie http://phpedia.pl/wiki/SQL_CALC_FOUND_ROWS, cos mi sie wierzyć nie chce tongue.gif
Damonsson
Może chodzi Ci o Primary Key? Ale to jest po prostu nazwa kolumny, która jest kluczem głównym w tabeli. Albo ja jestem niedouczony tongue.gif
mimol
nie, ale zauważyłem że najlepeij jest SELECT COUNT(1) FROM table
Damonsson
Tu masz cały poemat: http://stackoverflow.com/questions/2710621...which-is-better Miłej lektury biggrin.gif
mambus
Witam, nie chcę zakładać nowego tematu bo tutaj podobne zagadnienie. Otóż, nie wiem jak się zabrać za pewne zapytanie. Mam tabele z rezerwacjami, w której jest kolumna z datą (w form: Y-m-D). Chciałbym teraz pobrać wszystkie te dni, gdzie liczba powtórzeń dat jest większa bądź równa 5. Nie wiem czy jasno to objaśniłem, może przykład:

id | data |
1 | 2012-09-11 |
2 | 2012-09-11 |
3 | 2012-09-11 |
4 | 2012-09-11 |
5 | 2012-09-11 |
6 | 2012-09-19 |
7 | 2012-09-19 |
8 | 2012-09-19 |
9 | 2012-09-19 |
10 | 2012-09-19 |
11 | 2012-09-22 |
12 | 2012-09-22 |
13 | 2012-09-22 |
14 | 2012-09-22 |
15 | 2012-09-22 |
16 | 2012-04-01 |
17 | 2012-04-01 |
18 | 2012-04-01 |


a teraz chciałbym skonstruować zapytanie które wyciągnie mi wszystkie daty, których powtórzenia są większe bądź równe 5 (czyli w praktyce powinno wyciągnąć: 2012-09-11 , 2012-09-19 ,2012-09-22).


Próbowałem coś w stylu:
  1. SELECT DISTINCT(`rezerwacja_data_wydarzenia`)
  2. FROM `rezerwacje`
  3. WHERE (
  4.  
  5. SELECT COUNT(`rezerwacja_data_wydarzenia`)
  6. FROM `rezerwacje`
  7. ) >4

ale w tym wypadku wyciąga mi wszystkie daty po distinct, niezależnie od COUNT :/
mmmmmmm
  1. SELECT `data` FROM `rezerwacje` GROUP BY `data` HAVING COUNT(id) >= 5
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.