sql >> Database >  >> RDS >> Mysql

converteer de reguliere expressie van PCRE naar de reguliere expressie van mysql-query

MySQL ondersteunt geen lookarounds, noch ondersteunt het \d of \w klassen. Je kunt de regex zo splitsen:

SELECT * FROM table WHERE col REGEXP '^.{3,}$' AND col NOT REGEXP '^[0-9]+$' AND col NOT REGEXP '([^$&%@]*[$&%@]){4}' AND col NOT REGEXP '[[:<:]][[:alnum:]_]{11}'

Waar:

  • REGEXP '^.{3,}$' - de totale lengte moet 3 of meer tekens zijn
  • AND col NOT REGEXP '^[0-9]+$' - tekenreeks mag niet alleen uit cijfers bestaan
  • AND col NOT REGEXP '([^$&%@]*[$&%@]){4}' - string mag geen 4 speciale tekens hebben
  • AND col NOT REGEXP '[[:alnum:]_]{11}' - string kan geen woord hebben met 11 tekens


  1. Wat betekenen kolomvlaggen in MySQL Workbench?

  2. MySQL-query om de laatste gemiddelde prijzen te berekenen met behulp van gegevens uit meerdere tabellen

  3. Is er een prestatieverschil tussen HAVING op alias, versus het niet gebruiken van HAVING?

  4. MySQL LIKE met bereik werkt niet