Skocz do zawartości

[mysql] Porównywanie fragmentów pól za pomocą LIKE możliwe?


dj.drezyna

Polecane posty

Witam!

 

Od jakiś dwóch tygodni zająłem się bazami danych obsługiwanych przez php. Więc szybko pojawił się problem, bo pole data w tabeli nie może być typu daty w dosłownym tego słowa znaczeniu ponieważ w polu tym poza czymś w rodzaju 2000-03-09 jest np. wpis 2005-05-00 który informuje mnie o tym że chodzi o maj ale nie wiadomo dokładnie o jaki dzień tego miesiąca. No i tak dalej czyli np 1998-00-00 oznacza, że na pewno było to w 1998 roku ale nie wiadomo kiedy, czyli w jakim miesiącu i w jaki dzień.

 

Tu pojawia się pytanie. Czy można jakoś porównywać zapytania z użyciem LIKE w części WHERE? Chodzi o to czy można ze sobą porównywać fragmenty z zapytania w stylu (poprawność składniowa nie występuje ale prosiłbym o wskazówki co źle)

LIKE ____-$miesiacod-__ < LIKE ____-$miesiacdo-__

No i jak to zapisać bo coś mi się wydaje że te podkreślenia (mają zastępować dany znak) trochę zmieniają poprawność składni.

 

A może jest inny sposób na porównywanie fragmentów z danego pola z pewnej kolumny? Tak żeby ten fragment był np. sprawdzony czy jest większy czy mniejszy od tego samego fragmentu w innym polu.

 

Dziękuję za zapoznanie się z treścią powyższego zapytania.

Galeria przyrodnicza http://fotokrajobrazy.warmia.pl

Link do komentarza
Udostępnij na innych stronach

No właśnie pole tej ,,pseudo''daty jest właśnie w typie danych varchar(10). Więc nie rozumiem jak to miałoby wyglądać. No niestety bazami danych bawię się kilka tygodni zaledwie więc pewne rzeczy choć bym chciał nie wezmę z manuala niestety więc bardzo proszę o odpowiedź.

A zatem czy jest możliwe by wykorzystać do tego polecenie LIKE bo to jakoś najbardziej mi odpowiada ale mówię, jestem otwarty na inne propozycje tylko proszę, piszcie elementarnym językiem.

 

Dzięki,

Galeria przyrodnicza http://fotokrajobrazy.warmia.pl

Link do komentarza
Udostępnij na innych stronach

załóżmy że chcesz wybrać wszystkie rekordy z datą późniejszą od 4 lutego 2000

KOD

SELECT * FROM `tabela` WHERE

EXTRACT(year FROM dat)>=2000

AND( EXTRACT(month FROM dat)>=2 OR EXTRACT(month FROM dat) =0)

AND( EXTRACT(day FROM dat)>=4 OR EXTRACT(month FROM dat) =0)

 

gdzie dat to kolumna z datą

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...