MySQL не поддържа lookaround, нито поддържа \d
или \w
класове. Можете да разделите регулярния израз така:
SELECT * FROM table WHERE col REGEXP '^.{3,}$' AND col NOT REGEXP '^[0-9]+$' AND col NOT REGEXP '([^$&%@]*[$&%@]){4}' AND col NOT REGEXP '[[:<:]][[:alnum:]_]{11}'
Къде:
REGEXP '^.{3,}$'
- общата дължина трябва да бъде 3 или повече знакаAND col NOT REGEXP '^[0-9]+$'
- низът не може да се състои само от цифриAND col NOT REGEXP '([^$&%@]*[$&%@]){4}'
- низът не може да има 4 специални знакаAND col NOT REGEXP '[[:alnum:]_]{11}'
- низът не може да има дума с 11 знака