![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 31.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Chcialbym porownac ciagi znakow z jednej kolumny do zmiennej. Zeby nie było zbyt prosto ciagii maja pewne "fragmenty" ktore chcialbym porownac. Przyklad:
Format zmiennych: - na poczatku jest 1 lub 2 litery - nastepnie czasem jest spacja czasem jej nie ma - nastepnie 2 cyfry - na koncu nie ma nic lub jest litera A B lub V Zmienne znajduja sie w MySQL Teraz chcialbym w jakis sposob zrobic zapytanie do bazy aby przypasowalo $zmienna1 do $zmienna2 i $zmienna3 gdyz: - nie interesuja mnie spacje w zmiennych - nie interesuje mnie literka na koncu (bez roznicy czy ona jest czy jej nie ma) - interesuje mnie tylko w $zmienna1 ciag 'A23' i w 2 kolejnych tez tylko ta czesc Probowalem na rozne sposoby jednak troche malo mam wiedzy odnosnie MySQL (w wiekszosci uzywam tylko SELECT, WHERE, ORDER itp), szukalem w google informacji i kombinowalem z REPLACE LIKE ale albo nie znam do konca mozliwosci tych funkcji albo nie do konca rozwijazuja moj problem. Ostatnie proby wygladaly tak:
problem jednak w tym jest taki ze zostaje ta literka na koncu - chcialem dodac funkcje IN do WHERE ale nie wyszlo mi. Ma ktos moze pomysl jak sie za to zabrac? PS: Troche moglem nakrecic wiec jesli cos byloby nie jasne to piszcie, postaram sie dokladniej opisac wszelkie niejasnosci. Ten post edytował Ciosek 18.08.2011, 10:37:46 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Generalnie dobrze kombinujesz - musisz najpierw doprowadzić zarówno wartość z kolumny w bazie danych jak i wartość $zmienna do ich znormalizowanych form, tj. same wielkie litery*, usunięte białe znaki, usunięta ostatnia litera
* jeżeli masz pewność że nie będzie rozbieżności w wielkości znaków albo gdy metodę porównywanie znaków (COLLATION) w bazie danych masz ustawioną na case-insenstive (utf8_*_ci) możesz pominąć ten krok. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 31.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Crozin: wielkosc liter jest ta sama wiec ta czesc nie bedzie konieczna - dzieki ze podales opcje gdyby byla roznica
mam jednak jedno pytanie:
Z racji ze kompletnie nie znam sie na wyrazeniach regularnych wnioskuje ze jest to wyrazenie usuwajace spacje i ostatnia litere jesli takowa jest? Trzeba w tym wyrazeniu cos modyfikowac bo wedlug teog co napisales powinno ono dawac wynik AL23 a u mnie jednak daje AL23V i nie wiem za bardzo gdzie robie blad. Reszta jest jasna |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 11:13 |