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 № 1Moż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