![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 175 Pomógł: 18 Dołączył: 11.06.2007 Skąd: Koszalin/Poznań Ostrzeżenie: (0%) ![]() ![]() |
Witam. Musze z pola w bazie danych mysql mogącego zawierać i liczby i tekst wydobyć tylko pierwsza liczbę. Musi się to odbyć w zapytaniu sql, bo będzie użyte w ORDER BY.
Przykładowo wygląda tak: Zawartość pola: "od 40 do 100", musze wydobyć: 40 Zawartość pola: "od 40", musze wydobyć: 40 Zawartość pola: "40-100", musze wydobyć: 40 Zawartość pola: "40", musze wydobyć: 40 Zawartośc pola: "40 do 100", musze wydobyć: 40 Próbowałem z funkcją SUBSTRING_INDEX, i rozbijanie po spacji, ale to nie daje satysfakcjonujących wyników. CAST AS UNSIGNED również nie działa tak jak bym tego oczekiwał. Ten post edytował elektrrrus 21.09.2008, 00:22:57 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 175 Pomógł: 18 Dołączył: 11.06.2007 Skąd: Koszalin/Poznań Ostrzeżenie: (0%) ![]() ![]() |
Nie o to mi chodziło...
Z tego co rozumiem, REGEXP w mysql zwraca tylko wartości 0 jeśli dane pole nie spełnia wyrażenia, i 1 jeśli spełnia. Mi nie chodzi o sprawdzanie czy dane pole spełnia wyrażenie, tylko wyciągnięcie z danego pola fragmentu, który pasowałby do patternu, tak jak to można zrobić w php-owej funkcji preg_match podająć jako trzeci argument nazwę tablicy do której te dopasowywania będzie przypisywać. Wiem, mogę takie coś zrobić po stronie php, i wtedy odpowiednio posortować, ale wiążę się to z napisałem sporego kawałka kodu, dlatego pytam się, czy można coś takiego zrobić samym zapytaniem do mysql. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 23:24 |