/ / Jak znaleźć wiersze zawierające tylko znaki specjalne na polu używając MySQL? - mysql, regex

Jak znaleźć wiersze zawierające tylko znaki specjalne na polu za pomocą MySQL? - mysql, regex

Tutaj jest umowa, muszę znaleźć wiersze, na których określone pole zawiera tylko znaki specjalne, próbowałem używać wyrażenia regularnego, bez powodzenia.

Czy ktoś może mi pomóc?

Odpowiedzi:

1 dla odpowiedzi № 1

Możesz użyć

SELECT * FROM table WHERE col REGEXP "^[^[:alnum:][:space:]_]+$"

Zobacz regex demo.

Rozkład wzoru regex:

  • ^ - początek łańcucha
  • [^ - początek zanegowana klasa znaków który pasuje do dowolnego znaku innego niż zdefiniowany w tej klasie
    • [:alnum:] - litery i cyfry
    • [:space:] - Biała przestrzeń
    • _ - podkreślenie
  • ] - koniec zanegowanej klasy znaków
  • + - znaki dopasowane przez zanegowaną klasę znaków muszą mieć co najmniej 1 wystąpienie
  • $ - koniec ciągu