- Telekom mobilszolgáltatások
- Samsung Galaxy Watch8 - Classic - Ultra 2025
- Szintet lép a Xiaomi Apple másolásban?
- One mobilszolgáltatások
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Kiszivárgott a Pixel 10a specifikációja
- Xiaomi 15T Pro - a téma nincs lezárva
- Privát Samsung funkciót tehet az Apple publikussá
- iPhone topik
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
Ú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
- AMD Navi Radeon™ RX 9xxx sorozat
- Szabadalmi vita után bukta a német piacot az ASUS és az Acer
- Telekom mobilszolgáltatások
- Projektor topic
- LEGO klub
- Vezetékes FEJhallgatók
- Crimson Desert - Amikor már azt hitted mindent láttál!
- Elképzelhetetlen sebességre kapcsolt az Anthropic
- Geri Bátyó: Agglegénykonyha 13 – Néhány egyszerű, de finom étel
- HiFi műszaki szemmel - sztereó hangrendszerek
- További aktív témák...
- ELADÓ Keychron K8 Aluminium Frame vezetéknélküli billentyűzet Keychron fa csuklótámasszal (+ajándék)
- MSI Vector 16 Gaming Laptop / RTX 4080 175W / i9-12900HX / 1TB SSD / 16GB DDR5 RAM /
- iPhone 15 GYÁRI 99%-os akkumulátor!!
- LG 48" OLED (OLED48B53LA) 4K AI Smart TV
- Gamer PC-Számítógép! Csere-Beszámítás! Ultra 5 245KF / RTX 5060 / 16GB RGB DDR5 / 1TB Nvme SSD
- Beszámítás! VALVE Steam Deck OLED 512GB SSD kézikonzol garanciával hibátlan működéssel
- Apple iPhone 13 128GB, Kártyafüggetlen, 1 Év Garanciával
- IKEA Format lámpák eladóak (Egyben kedvezménnyel vihető!)
- BESZÁMÍTÁS! GIGABYTE A520M R5 5500 16GB DDR4 512GB SSD GTX 1070 8GB Zalman T3 Plus DeepCool 400W
- Apple iPhone 15 Pro Max / 256GB / Kártyafüggetlen / 12Hó Garancia / Akku: 83%
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


