Använd vanliga uttryck i MySQL SELECT-satser

En mycket cool och kraftfull förmåga i MySQL och andra databaser är möjligheten att införliva vanlig expressionssyntax vid val av data. Det vanliga expresion-stödet i MySQL är omfattande. I detta recept granskas användningen av vanligt uttryck i MySQL och listar de metadata som stöds för regelbundna uttryck.


Den grundläggande syntaxen för att använda reguljära uttryck i en MySQL-fråga är:

VÄLJ något från tabell WHERE kolumn REGEXP 'regexp'

Till exempel, för att välja alla kolumner från tabellhändelserna där värdena i kolumn id slutar med 5587, använd:

VÄLJ * FRÅN HÄNDELSER HUR ID REGEXP '5587 $'

Ett mer utförligt exempel markerar alla kolumner i tabellrecensioner där värdena i kolumnbeskrivningen innehåller ordet utmärkt:

VÄLJ * FRÅN OMRÄTTNINGAR VAR BESKRIVNING REGEXP '[[::]]'

MySQL tillåter följande vanliga uttrycksmetod:

. matcha alla tecken
? matcha noll eller en
* matcha noll eller mer
+ matcha en eller flera
{n} matcha n gånger
{m, n} matcha m till n gånger
{n,} matcha n eller flera gånger
^ början av raden
$ slutet på raden
[[::]] matcha slutet av orden
[: class:] matchar en tecken klass
dvs [: alfa:] för bokstäver
[: space:] för whitespace
[: punct:] för skiljetecken
[: övre:] för stora bokstäver
[abc] matcha en av bifogade tecken
[^ xyz] matchar alla karaktärer som inte bifogas
| skiljer alternativ

MySQL tolkar en backslash (\) tecken som ett flyktal. För att använda en backslash i ett reguljärt uttryck måste du flytta det med en annan backslash (\).