MYSQL ostatni znak w polu

MYSQL ostatni znak w polu
YO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 540
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?

UglyMan
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2206
1

Right lub Like ci pomoże. Poczytaj w dokumentacji

YO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 540
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)

UglyMan
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2206
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ć

jurek1980
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3625
3

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

YO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 540
0

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

abrakadaber
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6610
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)

ZK
  • Rejestracja: dni
  • Ostatnio: dni
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

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

screenshot-20200414171249.png

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.