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 (\).