![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 99 Pomógł: 0 Dołączył: 11.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dane i struktura bazy:
Kod +----+-------------------+ | ID | code | +----+-------------------+ | 1 | a:456;b:417;c:457 | | 2 | a:12;b:217;c:745 | | 3 | a:467;b:417;c:856 | | 4 | a:856;b:5888;c:857| .... i teraz problem tkwi w tym jakie zapytanie wysłać do bazy aby otrzymać z kolumny code cyfry po literze b: czyli b:xxxxx np. Kod +----+------+ | ID | code | +----+------+ | 1 | 417 | | 2 | 217 | | 3 | 417 | | 4 | 5888 | .... czy jest to możliwe ? szukałem w necie i nie moge znaleść odpowiedzi. Próbowałam RegExp
ale wyświetlają mi sie 1 lub 0 Będę wdzieczna za pomoc ![]() Ten post edytował ewelinac18 23.10.2012, 17:09:28 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 763 Pomógł: 117 Dołączył: 15.03.2010 Skąd: void Ostrzeżenie: (0%) ![]() ![]() |
Moja sugestia, silnik bazy danych nie służy do takich celów jak rozkładanie ciągów.
Pobierz całą wartość, skorzystaj z PHP (bo jest taka możliwość, prawda?) -> wyrażenia regularne / funkcja explode, wynik dostaniesz na tacy. Pozdrawiam. @edit ew. rzuć okiem na MATCH i AGAINST, i nawiasem, REGEXP chyba się tak nie stosuje.. Ten post edytował modern-web 23.10.2012, 17:19:48 -------------------- Pomogłem? Kliknij `Pomógł`. To nic nie kosztuje, a mnie usatysfakcjonuje! ;)
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 99 Pomógł: 0 Dołączył: 11.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Tak, ale po rozłożeniu ciągów chciałam jeszcze wykonać sortowanie i chyba będę musiała przebudować baze :/
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 763 Pomógł: 117 Dołączył: 15.03.2010 Skąd: void Ostrzeżenie: (0%) ![]() ![]() |
Sortowanie spowalnia proces wyszukiwania, pamiętaj o tym.
-------------------- Pomogłem? Kliknij `Pomógł`. To nic nie kosztuje, a mnie usatysfakcjonuje! ;)
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 511 Pomógł: 143 Dołączył: 13.03.2010 Skąd: Jasło Ostrzeżenie: (0%) ![]() ![]() |
w mysql funkcja REGEXP zwraca jedynie wartość logiczną czy string pasuje do wzorca, bez zwracania treści dopasowania
Możesz też bawić się z takimi funkcjami, ale znacząco obciąży to bazę danych: http://stackoverflow.com/questions/2696884...ne-field-to-two http://stackoverflow.com/questions/5928599...trings-in-mysql Najlepiej by było, jeżeli potrzebujesz wykonywania operacji na danych w tym polu tekstowym. Powinieneś podzielić string który masz na kolumny i dopiero wtedy wykonywać na niej operacje. Tak by tabela była zgodna z http://pl.wikipedia.org/wiki/Normalizacja_bazy_danych#1NF, inaczej będzie to kłopotliwe, bo bazy danych są po prostu tak zaprojektowane. -------------------- Good luck and happy PHP'ing
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 14:28 |