MYSQL ostatni znak w polu

0

Czy mogę jakoś łatwo sprawdzić czy ostatni znak w polu to oczekiwany ; a jeśli nie, to wypisać sobie listę pozycji, które nie zawierają oczekiwanego znaku?

SELECT id, pole FROM mojatabela WHERE pole i tu nie wiem co "znak na końcu" to pole varchar, które może mieć różny tekst: cos;cos innego i wtedy powinno mi taki przykład wypisać bo brakuje średnika na końcu, a jak byłoby: nic; nic innego; to już jest ok?

1

Right lub Like ci pomoże. Poczytaj w dokumentacji

0

tylko jak policzę ostatni znak w stringu? LIKE znajdzie mi czy w ogóle taki znak jest, a nie gdzie on jest (chodzi o to aby był ostatnim znakiem stringa)

2

Jak zrobisz kolumna like '%;' to ci znajdzie na końcu . Możesz też zrobić right(kolumna,1)=';' i to powinno być bardziej wydajne ale obydwa powinny działać

3

select * FROM table where columnx not like '%;'

0

Dzięki z tym NOT LIKE działa ;)

1

select case when RIGHT(pole, 1) = ';' then 'jest' else 'nie ma' end from tabela
i można założyć index na RIGHT(pole, 1)

0

ja tam bym wykorzystał niezawodnego regexa i za pomocą znaku $ szukałbym znaku ;

znak $ - wyszukuje na końcu tekstu

jeżeli chcesz wyszukać znaku ; w każdym miejscu, to regex wyglądać będzie tak

REGEXP_substr(`Nazwa_pola`';|;$');

screenshot-20200414171249.png

1 użytkowników online, w tym zalogowanych: 0, gości: 1