Hallo mensen,

Sorry voor deze onduidelijke topictitel.

Ik ben een webwinkel aan het maken. Deze winkel verkoopt 2ehandsboeken.
Ik heb een alfabetische balk gemaakt van 'Alle', A t/m Z, en 'overige'.

Als je bijvoorbeeld de letter 'K' klikt, laat de website alle titels zien die beginnen met een K, mbv de query "WHERE titel LIKE '$beginletter%'", jullie allen hopelijk wel bekend.

Dit werkt heel goed, al zeg ik het zelf, maar toch ontbreekt er iets aan. Boeken die niet met een letter beginnen, maar met een cijfer of een leesteken kunnen op deze manier niet worden gezocht, omdat ik niet weet hoe ik die query dan zou moeten formulieren.

Titels als "101 nachten", " 't zwarte schaap " of allerhande titels die met een leesteken of cijfer beginnen wil ik graag onder één noemer hebben, een knop die voor de A of achter de Z komt te staan. (alfabetisch schijnt het achter de Z moeten staan).

Kan iemand mij hierbij helpen? Het zou echt te gek zijn.


Groeten,

Robbert
Overige is dus alle titels die niet met een letter beginnen. Zou zoiets werken?

SELECT titel
FROM tabel
WHERE titel NOT REGEXP '^[a-z]'
Nou, dat lijkt perfect te werken :)!

Hartstikke bedankt!
Zou je deze query ook op kunnen splitsen?

Eentje die zoekt naar titels die met een leesteken beginnen, en een die zoekt naar titels die beginnen met een cijfer?

Moet ik dan misschien iets doen als...

NOT REGEXP '^[a-z][0-9]' voor boeken die beginnen met een leesteken (en niet anders dan dat)?

Hoe doe ik dan boeken die met een cijfer beginnen?
De tegenhanger van NOT REGEXP is gewoon REGEXP. Dus daarmee kun je controleren of een titel met een cijfer begint:

SELECT titel
FROM tabel
WHERE titel REGEXP '^[0-9]'


En voor een leesteken zou ik deze pakken:

SELECT titel
FROM tabel
WHERE titel NOT REGEXP '^[a-z0-9]'
Hartstikke bedankt.

't Is een taaltje op zich die Reg Expressions ;)

Reageren