Αν είσαι σίγουρος για το τι προηγείται ή έπεται της λέξης που αναζητάς, μπορείς να χρησιμοποιήσεις expressions μέσα στο like. Για παράδειγμα:
SELECT *
FROM BOOKS
WHERE
TITLE LIKE
'%[^abcdefghijilmnopqrstuvwxyz0123456789]word[^abcdefghijilmnopqrstuvwxyz0123456789]%'
Το expression περικλείεται από τα brackets [] και οτιδήποτε βρίσκεται εκεί μέσα ακολουθεί τους εξής κανόνες:
Αν προηγείται στην αρχή ο χαρακτήρας ^, τότε δεν θα πρέπει να βρεθεί ένα από τα επόμενα γράμματα. π.χ. %[^012]word% θα σου φέρει τα aword, bword, zword, bwords, cwordprocessor αλλά όχι τα 0word, whatever1wordprocessor.
Αν δεν προηγείται, τότε θα πρέπει οπωσδήποτε να βρεθεί ένα από τα επόμενα γράμματα. Π.χ. %[012]word% θα σου φέρει τα 1word, my2words, αλλά όχι τα whateverbword, cword κλπ.
Το %[^abc]word% π.χ. σου βρίσκει όλα τα occurences της λέξης word όταν αυτή ΔΕΝ προηγείται (εξ'ού ο χαρακτήρας ^ που δηλώνει το "δεν"), από τα γράμματα a b c. Δηλαδή δεν θα σου φέρει εγγραφές που περιέχουν τις λέξεις aword, bword, cword, myaword, whateverbword κλπ.
Φυσικά αν θέλεις να περιλαμβάνεις και εγγραφές που η λέξη βρίσκεται στην αρχή ή το τέλος του πεδίου πρέπει να κάνεις το εξής:
SELECT *
FROM BOOKS
WHERE
TITLE LIKE
'%[^abcdefghijilmnopqrstuvwxyz0123456789]word[^abcdefghijilmnopqrstuvwxyz0123456789]%'
OR
TITLE LIKE
'word[^abcdefghijilmnopqrstuvwxyz0123456789]%'
OR
TITLE LIKE
'%[^abcdefghijilmnopqrstuvwxyz0123456789]word'
Σωτήρης Φιλιππίδης
DotSee Web Services