Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Select count, stała
mimol
post 25.08.2012, 10:54:17
Post #1





Grupa: Zarejestrowani
Postów: 247
Pomógł: 5
Dołączył: 10.12.2007

Ostrzeżenie: (0%)
-----


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źć
Go to the top of the page
+Quote Post
skowron-line
post 25.08.2012, 11:01:55
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


A co chcesz osiągnąć questionmark.gif Zliczyć wszystkie elementy z tabeli questionmark.gif Pogrupować questionmark.gif
GROUP BY
HAVING


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
mimol
post 25.08.2012, 11:07:30
Post #3





Grupa: Zarejestrowani
Postów: 247
Pomógł: 5
Dołączył: 10.12.2007

Ostrzeżenie: (0%)
-----


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)

Ten post edytował mimol 25.08.2012, 11:08:01
Go to the top of the page
+Quote Post
Damonsson
post 25.08.2012, 11:35:18
Post #4





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Może chodzi Ci o to: SQL_CALC_FOUND_ROWS ?

Ale nie jest to ładniejsze ani wydajniejsze. Co Ci przeszkadza w SELECT COUNT?

Ten post edytował Damonsson 25.08.2012, 11:38:00
Go to the top of the page
+Quote Post
mimol
post 25.08.2012, 11:48:56
Post #5





Grupa: Zarejestrowani
Postów: 247
Pomógł: 5
Dołączył: 10.12.2007

Ostrzeżenie: (0%)
-----


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

Ten post edytował mimol 25.08.2012, 12:08:41
Go to the top of the page
+Quote Post
Damonsson
post 25.08.2012, 12:32:27
Post #6





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
mimol
post 25.08.2012, 12:39:07
Post #7





Grupa: Zarejestrowani
Postów: 247
Pomógł: 5
Dołączył: 10.12.2007

Ostrzeżenie: (0%)
-----


nie, ale zauważyłem że najlepeij jest SELECT COUNT(1) FROM table
Go to the top of the page
+Quote Post
Damonsson
post 25.08.2012, 12:43:36
Post #8





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Tu masz cały poemat: http://stackoverflow.com/questions/2710621...which-is-better Miłej lektury biggrin.gif
Go to the top of the page
+Quote Post
mambus
post 28.08.2012, 12:35:11
Post #9





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 30.11.2010

Ostrzeżenie: (0%)
-----


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 :/

Ten post edytował mambus 28.08.2012, 12:51:10
Go to the top of the page
+Quote Post
mmmmmmm
post 28.08.2012, 12:49:02
Post #10





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

Ostrzeżenie: (0%)
-----


  1. SELECT `data` FROM `rezerwacje` GROUP BY `data` HAVING COUNT(id) >= 5
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 15:00