Archief - mysql: info vantussen "binnenste" haakjes halen0

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

JohnBeton

Legacy Member
Ik zou willen kunnen werken met haken ('(' en ')') in mijn searchding om de volgorde van zoeken te bepalen.
Stel dus dat er gezocht wordt naar "A AND (b OR c)", dan zou er eerst gezocht moetne worden naar "b OR c". Deze string is nog makkelijk te ontleden, maar stel nu dat hetvolgende gevraagd wordt:

"((A OR B) AND (C OR D))"
=> Eerst "A of B" vinden en "C of D", en daaruit dan de "AND" voorwaarde checken.

Nu is het probleem: hoe kan ik het best de "middelste" haakgroepjes hieruit filteren?

Alvast bedankt

Cakeman

Legacy Member
Dat gaat toch in één query?

Nu ga je waarschijnlijk antwoorden met "Ja, maar in mijn geval niet" :)
Leg eens uit waarom niet? Dan is het voor iedereen handiger om een oplossing te zoeken.

JohnBeton

Legacy Member
Heb wel niets gevraagd over query, maar om de links met de andere thread uit te leggen:

Het forum wordt nu geïndexeerd: elk woord groter dan 3 letters wordt opgenomen in een tabel die bijhoudt welk woord (of beter, de hash ervan) in welke thread staat.
Tabel bestaat dan ook uit 2 kolommen:
hash | threadID
---------------
19292912 | 1
09809839 | 1
12099080 | 2

(fictieve hashes)

Stel nu dat "A" gelijk is aan die eerste hash en "B" gelijk aan de tweede hash. Beide komen uit thread 1. Dan kan je met 'where hash="..." and hash="..." ' niet werken, vermits er geen enkele rij bestaat waar beide hashes in staan.

1 query (zonder subqueries, mysql) is dus niet mogelijk.

Maar dit staat wel een beetje los van die andere thread. Hoe kan ik namelijk het best "de volgorde van bewerkingen" toepassen op zo'n string? ( "(A OR B) AND (C OR D)" )

JohnBeton

Legacy Member
Misschie duidelijker voorbeeld:

(apple OR mac)AND(windows OR (gates and bill))

Makkelijk te interpreteren als mens, maar hoe moet je een computer dit laten aanpakken?


MOD: net iets bedacht dat m'n probleem oplost denk ik, toch bedankt

LunchBox

Legacy Member
Makkelijk te interpreteren als mens,
uhm, vindt ge -- logischer lijkt mij:

(linux OR macos OR windows)AND(linus torvalds OR (steve jobs AND apple) OR (steve balmer AND microsoft))
ma soit dah zal aan mij liggen.

JohnBeton

Legacy Member
LunchBox zei:
uhm, vindt ge -- logischer lijkt mij:

(linux OR macos OR windows)AND(linus torvalds OR (steve jobs AND apple) OR (steve balmer AND microsoft))
ma soit dah zal aan mij liggen.
Euhm
Das niet de point ;)
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan