Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak w prosty i szybki sposób
Forum PHP.pl > Forum > Bazy danych > MySQL
rafcio8405
Jak w prosty i szybki sposób zobaczyć czy jest dany rekord? Chodzi o to że mam tabele dzień (kal_day) gdzie jest są zapisywane daty w postaci RRRR-MM-DD i chcę określić czy w danym dniu była dodana notatka.
vala
  1. <?php
  2.  
  3.  
  4. $result = mysql_query('SELECT * FROM baza WHERE kal_day=RRRR-MM-DD');
  5.  
  6.  while($row = mysql_fetch_row($result))
  7.  {
  8. if(!empty($row[1]))
  9. { 
  10. echo 'cos tam jest';
  11. }  
  12.  
  13.  
  14.  
  15.  }
  16.  
  17.  
  18. ?>
dr_bonzo
Data jest stringiem wiec trzeba go o''owac:
  1. SELECT *
  2. FROM baza WHERE kal_day='RRRR-MM-DD'
Kinool
no mozna tez tak:
  1. SELECT 1
  2. FROM my_day WHERE day=NOW()

zwraca 1 jesli wpis istniej lub nic jesli go nie ma smile.gif
dr_bonzo
A NOW() zwraca pelna date z czasem czy tylko dzien miesiac rok?
Radarek
Cytat(dr_bonzo @ 2005-06-04 04:27:54)
A NOW() zwraca pelna date z czasem czy tylko dzien miesiac rok?

Kod
mysql> select NOW();
+---------------------+
| NOW()               |
+---------------------+
| 2005-06-04 10:42:32 |
+---------------------+
1 row in set (0.00 sec)
dr_bonzo
Wiem, lenistwo.
Ale teraz:
  1. SELECT 1
  2. FROM my_day WHERE day=NOW()

zwroci 1 gdy jest wpis z danego dnia | godziny, minuty, sekundy, a nie o to chodzilo.
Kinool
NOW() jak by to powiedziec "dostosowuje" sie smile.gif i w tym przypadku zwraca tylko to co ciebie interesuje (zalezy jaki typ pola jest w tabeli)

pytanie dotyczylo jak szybko sprawdzic czy jest wpis z danego dnia, te zapytanie to robi!
dr_bonzo
pow( Lenistwo, 2 ); pewnie to w manualu jest opisane. Ale poza tym ciekawe rozwiazanie.
sobstel
dla wikszej wydajnosci dobrze tez dodac na koncu zapytania LIMIT 1
SongoQ
Cytat
dla wikszej wydajnosci dobrze tez dodac na koncu zapytania LIMIT 1


Jesli oczekujesz 1 rekordu to dadanie limit 1 powuduje spadek wydajnosci bo dodatkowo zadasz od bazy dodatkowej operacji, jesli spodziewasz sie wiecej rekordow a interesuje Cie czy istnieje wtedy limit jest ok. Dla pewnej ilosci rekordow mozna wykorzystac funkcje agregracji danych.
rafcio8405
dla jednego dnia tylko nota może być jedna ale nwesy może być ich wiele winksmiley.jpg
SongoQ
No to dla newsow hm mozesz kobinowac i sprawdzac wydajnosc, jak to bedzie. Wtedy ten limit okaze sie ok. Wszystko kwestia testow i zlozonosci zapytania.
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.