- Redmi Note 15 Pro 5G – a szokásosat?
- Ennyit dobott egy telefon gyártási költségén a memóriakrízis a Xiaomi szerint
- Így lehet kiszúrni, ha kamu AirPods fülest akarnak eladni neked
- iPhone topik
- Android szakmai topik
- Poco X8 Pro Max - nem kell ide sem bank, sem akkubank
- Apple iPhone 17 Pro Max – fennsík
- Xiaomi 15T Pro - a téma nincs lezárva
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Google Pixel topik
Új hozzászólás Aktív témák
-
bambano
titán
válasz
csabyka666
#2177
üzenetére
a dolog lényege, hogy php-ben összefaragod stringműveletekkel a keresési feltételt, és utána egy keresést futtatsz, mert ha több utasításban keresel, akkor a distinctből falra hányt borsó lesz.
azt nem értettem eddig a kérdésedben, hogy neked a keresőszót több mezőn is egyszerre kellene értelmezni, eddig azt hittem, csak egyen.
erre meg az a megoldás, hogy az adatbáziskezelővel összerakatod egy stringbe az összes mezőt, amiben keresni akarsz, és arra adod meg a kereső kifejezést.tehát ha van mondjuk egy név, egy leírás, egy gyártó meződ, akkor valahogy így:
név||'|'||leírás||'|'||gyártó like '%elsőkeresőszó%' (postgresql szintaktikával, a || a postgresben string konkatenáció)
és ebből csinálsz logikai vagy-gyal függvényt. vagy csinálni kell rá egy nézettáblát, amin keresel, az lehet, gyorsabb.
magyarul keresel egy olyan karaktert, ami biztosan nem fordul elő az adatokban, hogy elválaszd a szavakat (nekem erre a csővezetékjel a kedvenc), és az összes mező tartalmát összerakod egy stringbe ezzel a jellel elválasztva, majd ezen a stringen csinálod a like-ot. ez egy logikai kifejezés, ebből csinálsz vagy-gyal egy végső logikai kifejezést.
másik, nem annyira elegáns megoldás, ha csinálsz egy külön táblát, amibe ideiglenesen tárolod a keresések részhalmazait, csak akkor ott figyelni kell rá, hogy párhuzamos használat esetén mi lesz.
szóval egy táblába beleszórod azokat az azonosítókat, amely rekordokban az aktuális keresőszó megvan, majd csinálsz egy selectet belőle, distinct-tel, valahogy így:for i in (keresendő szavak listája sorban); do
for j in (keresett mezők listája sorban); do
sql="insert into temptabla (id) select id from tabla where $j like '%$i%';
done
done
select distinct id from temptabla;ez nyilván nem helyes program, csak egy utalás arra, hogy hogyan kellene. szerintem ez a második megoldás kicsit parasztos, de mindegy...
Új hozzászólás Aktív témák
- Többszörösére növeli az üzemidőt az LG 1 Hz-es LCD panelje
- Mini PC
- 3DMark (2013) eredmények
- Milyen billentyűzetet vegyek?
- Crimson Desert
- Anime filmek és sorozatok
- Autós topik látogatók beszélgetős, offolós topikja
- Hogy is néznek ki a gépeink?
- Redmi Note 15 Pro 5G – a szokásosat?
- Azonnali alaplapos kérdések órája
- További aktív témák...
- 27% - Acer CBA272H VA Monitor! 1920 1080 / 100Hz / 4ms / FreeSync
- szinteÚJ 2030 Gar! Dell Pro Max 14 Ryzen AI 9 HX PRO 370 32GB LPDDR5X 1TB NVMe SSD
- 5G! Lenovo ThinkPad P14s Gen 4 Intel Core i7-1370P RTX A500 32GB 512GB 1 év teljeskörű garancia
- Eredeti Lenovo 90W szögletes (téglalap) notebook táp + kerek átalakító egyben eladó
- Eladó Dell Latitude 5340 i5-1345U 16 GB DDR5 Törésgarancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

