Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: MySQL i "mniejsze bądź równe"
Forum PHP.pl > Forum > Bazy danych > MySQL
sledzik1984
Cześć!

Potrzebuję wybrać z bazy pewien rekord... Staram się zrobić to zapytaniem

  1. SELECT *
  2. FROM cena WHERE cena_data<='$data_odl' LIMIT 1 ;


I zapytanie to nie funkcjonuje do końca poprawnie. Z tego co udało mi się zauważyć w ogóle nie jest brany pod uwagę znak =. Znak < funkcjonuje zupełnie normalnie... Mógłby mi ktoś naświetlić sprawę? Czy MySQL potrafi w ogóle wykonać takie zapytanie?
Method
powazne oskarzenie rzucasz w kierunku mysql'a. Pewnie kupiles go na stadionie Xlecia bo moj sciagniety dziala wysmienicie tongue.gif
a probowales <= zamienic na dwa warunki ?
czy zwraca to samo ?

a do czego 'LIMIT 1' uzywasz ? dry.gif
bo z tego co klepnales w poscie wynika ze chcesz zwrocic tylko jeden row a jak sam napisales najpierw jest < a potem =
tiraeth
Cytat(sledzik1984 @ 2005-08-02 09:25:10)
Z tego co udało mi się zauważyć w ogóle nie jest brany pod uwagę znak =. Znak < funkcjonuje zupełnie normalnie...

Znak równości nie jest brany pod uwagę ponieważ użyłeś LIMIT 1, co powoduje, że wyświetlasz tylko jeden element smile.gif

  1. SELECT *
  2. FROM cena WHERE cena_data < '$data_odl' OR cena_data = '$data_odl' LIMIT 1

Przetestuj sobie powyższy skrypt z tym Twoim i zapewne zauważysz, że zwraca on to samo co Twój. Dlaczego? LIMIT 1 smile.gif
Method
tiraeth tak nie mozna odpowiadac wprost to nie grzeczne, opisal babola i dostal wskazowki co jest nie tak
cool.gif

---
co jest niegrzeczne? smile.gif
tiraeth
SongoQ
Mozesz dodac rand w sortowaniu i bedziesz mial losowo zwracany ten rekord. Bo wydaje mi sie ze chodzi Ci o to ze zawsze zwraca Ci Limit rekord w ktorym jest spelniony warunek <. Takie moje przypuszczenia.
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.