Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Złożony warunek where dla dwóch pól
Forum PHP.pl > Forum > Bazy danych > MySQL
gawar
Witam, Mam problem z przygotowaniem warunku, który wyświetlałby faktury zależne od numeru składającego się z dwóch pól w bazie.
Numer faktury składa się z roku i jakiegoś unikatowego trzy cyfrowego numeru.
Chciałbym napisać warunek, który wyświetli mi faktury np z przedziału od 2015/12 do 2016/15. Próbowałem z between ale nie działało to tak jak trzeba gdyż najpierw wybierało dane po jednym warunku a dopiero potem po drugim. i gdy faktura z roku 2015 miała unikatowy numer większy niż 15 to już tego mi nie wyświetlało:(
Zacząłem kombinować ze znakami "mniejsze" "większe" ale też nie działa to tak jak powinno, znów wyświetla numery tylko do 15:

  1. WHERE (
  2. m.zg_rok >=2015
  3. AND m.zg_numer >=12
  4. ) AND( m.zg_rok <=2016
  5. AND m.zg_numer <=15 )


Proszę o pomoc
kapslokk
  1. WHERE m.zg_rok*1000+m.zg_numer BETWEEN (2015*1000+12) AND (2015*1000+15)

Coś takiego mi do głowy przychodzi tylko, ale lepiej gdybyś sobie zrobił osobne pole na ten numer.
gawar
mam w osobnych polach : w jednym jest rok a w drugim ten numer trzy cyfrowy
Pyton_000
Takie tam:
Kod
SELECT * FROM fv WHERE CONCAT(rok,LPAD(nr, 3, 0)) BETWEEN 2015005 AND 2016006


PS. Koledze chodzi o to żebyś w oddzielnym polu trzymał cały sklejony nr.
gawar
a jak to wdrożyć jeżeli używam PDO i idzie to prze PHP? nie wiem jak dodać te zera z przodu jak binduje wartości ze zmiennych?
Pyton_000
http://php.net/manual/en/function.str-pad.php
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.