Dorota Trybała

Dorota Trybała
Projektant-programis
ta

Temat: LIKE czy inny operator

Filtr w Crystalu zawierający LIKE działa mi inaczej niż zapytanie SQL w programie. Wyszukuję rekordy, które mają zawierać określone słowo lub jego część i wszystko się zgadza dopóki wpisane słowo znajduje się na początku pola. Mam np. takie dane w bazie: "zwierzęta dzikie", a niekiedy "dzikie".

Podaję 3 przykłady zachowania polecenia SQL i CR w zależności od wyszukiwanego ciągu znaków:
1. Wpisano "zwierzęta dzikie" - SQL i CR znajduje to samo
2. Wpisano "dzikie" - SQL znajduje "zwierzęta dzikie" oraz "dzikie", a CR tylko "dzikie"
3. Wpisano "dzi" - SQL znajduje "zwierzęta dzikie" oraz "dzikie", CR nie znajduje NIC.

Jak można to inaczej rozwiązać, skoro LIKE działa tylko jak STARTSWITH dla całego wyrazu?
Dorota Trybała

Dorota Trybała
Projektant-programis
ta

Temat: LIKE czy inny operator

gorzej:
4. "zwierzęta" - SQL znajduje "zwierzęta dzikie", CR nie znajduje NIC.
Sławomir M.

Sławomir M. Specjalista ds.
jakości
oprogramowania,
Asseco Business S...

Temat: LIKE czy inny operator

A jaki stosujesz symbol zastępujący ciąg znaków? Zamiast % wpisz *
Marcin S.

Marcin S. Programista, trener
i konsultant w
zakresie .NET/.NET
Cor...

Temat: LIKE czy inny operator

Przede wszystkim pamiętaj, że Crystalowy LIKE stostuje gwiazdkę zamiast procenta jako dowolo ny ciąg znaków. Ale to jedyna różnica.

Rozwiązanie twojego problemu:
{slowa.slowo} like '*' + {?slowo} + '*'

gdzie {?slowo} to parametr, który wpisuje użytkownik.

Crystal przetłumaczy to na zapytanie SQL:

SELECT "slowa"."slowo"
FROM "Test"."dbo"."slowa" "slowa"
WHERE "slowa"."slowo" LIKE N'%dzi%'

czyli również użyje like.

Powodzenia!
Dorota Trybała

Dorota Trybała
Projektant-programis
ta

Temat: LIKE czy inny operator

Pomogło, dziękuję bardzo. Ogólnie źle to robiłam, łącznie z odwróconą kolejnością parametr - pole.

Następna dyskusja:

Praca na wielu kolumnach. C...




Wyślij zaproszenie do