MySQL - traženje dijela stringa u polju

Dakle imam problem, a ne znam koji pojam proguglati.
Stvar je sljedeća (idemo izmisljenim primjerom za stvarni problem)

$string=“pero jede pizzu i pije pivo”;

U bazi imamo tablicu koja se zove “pica_i_jela”

| id | artikal | cijena |

| 1| pizza | 40 |
| 2| pivo | 12 |
| 3| cevapi u somunu | 30 |
| 4| cevapi sa ajvarom| 35 |

Problem je u sljedećem, kako pronaći u tablici “pizzu” i “pivo” koristeći podatke iz $string a da ne moram rastaviti $string na dijelove (recimo $sverijeci=explode(" ",$string)) i da za svaki pojam moram prelaziti kroz tablicu trazeci postoji li taj podatak u bazi ili ne.
Čak niti to ne bi bio problem, međutim problem je ako “pero naruči cevape u somunu i pivo”, pa ako rastavim $string “cevapi u somunu” na dijelove, onda ce mi vratiti podatke za “cevape u somunu” i “cevape sa ajvarom”, pa onda moram raditi dodatan filter za to, itd…

Ima li tko kakvo tješenje, nekakav SQL upit ili primjer kojim bih to mogao napraviti?

SQL upit kojim bi provjerio da li dio u polju u bazi odgovara dijelu teksta u stringu…

u php-u možeš sa stripos() ili strpos() ako treba case-sensetive, tražiš dvaput u stringu, al i to čini mi se bolje od explode
mysql ima INSTR(string, ‘trazeni_pojam’)

To je to eni!
SELECT artikal, cijena FROM pica_i_jela WHERE INSTR( ‘cevapi u somunu’, artikal ) >1

HVALA
i +1


Copyright © 2022 WM Forum - AboutContact