Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pobranie danych z bazy Mysql za pomocą LIKE
pwwp
post 6.08.2018, 14:02:00
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 24.02.2017

Ostrzeżenie: (0%)
-----


Witam,

Mam problem z wybraniem z bazy określonego rekrodu.

Załóżmy że tabela w bazie danych ma znaki 1|15|24|157|154 (to znaki w jednym polu tabeli typu:'text')

I teraz stosuję tutaj zapytanie w takiej formie

SELECT id FROM nazwabazy WHERE nazwakolumny LIKE "%15[^0-9]%"

Problem jest taki że Mysql szuka po tym select tylko chyba pomija mi [^0-9]
Chciałbym pobrać tutaj taki rekord, który będzie zawierał 15 (na początku dałem %15% i pobierało mi ten rekord ale jeżeli wystąpiłby rekord 150 to też by mi pobrało ten rekord)

Dlatego próbuję wymyślić coś, aby pobrało mi 15, ale żeby następny znak nie zawierał liczby czyli jakby było 1|150|8|17 to wtedy powinno mi nie pobrać tego rekordu

Proszę o pomoc.

Ten post edytował pwwp 6.08.2018, 14:02:42
Go to the top of the page
+Quote Post
viking
post 6.08.2018, 14:30:55
Post #2





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Jak już to regexp_like. Resztę masz w dokumentacji.


--------------------
Go to the top of the page
+Quote Post
pwwp
post 6.08.2018, 14:37:46
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 24.02.2017

Ostrzeżenie: (0%)
-----


Kombinowałem z REGEXP ale bez LIKE jak mi się uda to poinformuję.

Dziękuję za poradę smile.gif

Narazie mam coś takiego

SELECT id FROM tabela WHERE kolumna REGEXP '15[^0-9]'

Działa w przypadku pokazania się wartości 150 (tzn. odrzuca ją) problem jest wówczas gdy 15 jest jako ostatnie znaki czyli np. 150|1|15

Wówczas ta funkcja nie znajdzie mi 15 bo szuka znaku po tej 15 ale że go nie znajduje to nie wyszukuje (tak sądzę).

Tutaj powinno być chyba tak 15[^0-9] (lub koniec znaków) tylko jak to zdefiniować ?

Chyba mam już rozwiązanie '^15|15[^0-9]|15$'

Może przyda się komuś innemu to trochę je omówię ^15 oznacza że ma szukać na początku 15. | to lub. 15[^0-9] to szukanie wystąpienia 15 i następnym znakiem nie będzie liczba, a 15$ to szukanie 15 na końcu danego pola w bazie

Dziękuję za pomoc

Ten post edytował pwwp 6.08.2018, 15:35:28
Go to the top of the page
+Quote Post
robert0770
post 16.08.2018, 13:48:59
Post #4





Grupa: Zarejestrowani
Postów: 42
Pomógł: 1
Dołączył: 18.02.2015

Ostrzeżenie: (0%)
-----


a nie lepiej tak?

  1. (^|\|)15(\||$)


działa dla tych opcji:

15|150|15|115

Ten post edytował robert0770 16.08.2018, 13:52:30
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.03.2024 - 21:20