Hirdetés
- iPhone topik
- 18. helyet ért a Samsung Galaxy S26 Ultra kamerarendszere a DxOMarknál
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Android alkalmazások - szoftver kibeszélő topik
- iPhone Ultra néven jöhet az Apple első foldja, nem lesz olcsó mulatság
- Poco F8 Pro – titkos favorit lehet belőle
- MWC 2026: Kezünkben a Vivo V70, megvan a magyar ára is
- Yettel topik
- Telekom mobilszolgáltatások
- Hivatalos a OnePlus 13 startdátuma
Ú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
- P14s Gen5 14.5" 3K IPS Ultra 7 165H RTX 500 Ada 32GB 512GB NVMe magyar vbill ujjolv IR kam gar
- DJI Mini 3 RC drón szett - újszerű állapotban, táskával
- Asztali PC , i7 9700 , RX 6600 XT , 16GB DDR4 , 512GB NVME , 1TB HDD
- Microsoft Xbox Series X 1TB Játékkonzol 2 konti (kiegészítőkkel)
- ZBook Fury 17 G7 17.3" FHD IPS i7-10850H RTX 3000 32GB 512GB NVMe ujjolv IR kam gar
- PlayStation 5 FAT Lemezes + kontroller 6 hó garancia, számlával!
- ÚJ Bontatlan Honor X7d 6/128GB fekete/ 12 hónap jótállással!
- Bomba ár! Dynabook Portege X30-L - i5-1135G7 I 8-16GB I 256SSD I 13,3" FHD I Cam I W11 I Garancia!
- Honor X7 128GB, Kártyafüggetlen, 1 Év Garanciával
- Eredeti DELL 240W töltők (LA240PM160)
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

