Wpis z mikrobloga

Jest tu jakiś ekspert od #sql #sqlite #mysql? Jak wyszukiwać rekord po tym że wartość zawiera słowo albo słowa kluczowe z tablicy/listy?
Np.
Słowa kluczowe: [koń, pies, kot]
I zwróci wtedy np. Kot to taki pies.
Albo zwróci: Kot jest fajny.
Nie mogę dać like bo nie znam wartości w tablicy bo mają być tworzone dynamicznie.
  • 16
@MrFisherman: Jakbyś dał "LIKE" to byś dopiero dowalił, bo to nie służy do sprawdzania wielu elementów, tylko jednego elementu względem zadanego wzoru.

To, czego chcesz użyć to "IN". Tablicę trzeba złączyć separatorem: ', ' a następnie dodać ' na początku i na końcu. Acha, no i każdy element tablicy musi mieć podmienione każde wystąpienie znaku ' na dwa takie same znaki obok siebie (tzw. cytowanie).

Innymi słowy, jak masz tablicę:

[koń,
@M4ks: wiem o co pytam, ja z poziomu javy na tej bazie chce działać i nie wiedziałem jak to zrobić bo jak dajesz like to tylko jedno możesz chyba że dasz do pętli ale wtedy kijowo wygląda. To tez się pytałem czy dasz przykład bo nie wiedziałem czy po tym in ma być ' czy | czy % itd.
@MrFisherman: poprosiłeś o przykład w "jakimś języku programowania", pytając o SQL. SQL jest językIem programowania.
Mówisz że chcesz w javie, przykład w Pythonie czy C niezbyt by Ci się przydał. To serio brzmiało jakbyś nie rozumiał o co pytasz.
@M4ks: Przecież napisałem, że każdy element tablicy musi mieć zacytowany znak ' poprzez podmianę go na dwa wystąpienia tegoż znaku. Jest to jak najbardziej poprawne rozwiązanie. Niezbyt ładne, ale poprawne. Myślisz, że jdbc pod spodem to co robi? Dokładnie właśnie to.

Oczywiście, kiedy było już jasne, że @MrFisherman chodzi o javę, to są do tego gotowe rozwiązania.

@tptak: SQL to nie język programowania. PL/SQL już tak (a ściślej to SQL
@vipe: nie jest poprawne, poprawne eskapowanie to złożona sprawa. Twój sposób juz przepuści klasykę "-- ".
Równie dobrze możesz polecić mu przelecieć wszystkie rekordy bo w sumie to jest to samo co robi baza...
@M4ks: Chyba nie zrozumiałeś jak działa opisany algorytm. Nic nie przepuści.

Nie bądź cyniczny. Opisałem mu generyczny sposób, niezależny od języka programowania, bo są języki, w których sterownik takich rzeczy nie załatwi.