![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 118 Pomógł: 0 Dołączył: 14.02.2004 Skąd: Warszawa Ostrzeżenie: (10%) ![]() ![]() |
Mam komórki w których umieszczam n liczb poprzedzielanych ":" np.:
Kod 1:5:9:
Jak zrobić aby na poziomie slectowania z bazy pobrać tylko te które zawierają np. 5 Nie chcę pobierać wszystkich rekordów, nastepnie ciąć string i w zależności czy się zgadza czy nie wyświetlać dane - przy rekordach liczonych w tysiacach to będzie długo trwało... |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 31.01.2003 Skąd: piękne, czyste, pachnące Katowice Ostrzeżenie: (0%) ![]() ![]() |
Możesz zastosować:
[sql:1:889c55cf01]select kolumny from tabela where kolumna_z_liczbami like '%5%'[/sql:1:889c55cf01] ale klauzula LIKE działa dosyć wolno i musisz liczyć się z utratą wydajności. -------------------- janek
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 27 Pomógł: 0 Dołączył: 8.08.2003 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
Chyba nietakie zaawansowane to zapytanie, bo ucze sie mysql od niecałych 2 tygodni
![]() [sql:1:8f0b4affe8]SELECT pole FROM tabela WHERE liczby LIKE '%5%' ;[/sql:1:8f0b4affe8] |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
[sql:1:e5c2620f8d]
SELECT * FROM tabela WHERE pole RLIKE '(^|:)XX(:|$)'; [/sql:1:e5c2620f8d] Za XX podstawiasz liczbe, ktorej szukasz. Bedzie to wydajniejsze niz robienie tego z php, ale wiecej bys zyskal jakbys przeprojektowal baze, bo widze tu probe zastosowania relacji 1-n w dosc niefortunny sposob. Jak chcesz to napisz jakie masz teraz tabele (i pola w nich), a podpowiem Ci (albo ktos inny jak zdazy :)) jak to powinno wygladac. ---edit: Panowie.. Wasze rozwiazanie jest slabe.. mowa jest o liczbach, a nie o cyfrach, czyli moze byc cos wiecej niz 10, a jak zadziala Wasze rozwiazania jak w tym polu bedzie liczba 15?... -------------------- Brak czasu :/
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 118 Pomógł: 0 Dołączył: 14.02.2004 Skąd: Warszawa Ostrzeżenie: (10%) ![]() ![]() |
skubekk --> Twój sposób jest zły
![]() P.S teraz zauważyłem, że mój poprzednik napisał to samo ![]() Aktualnie jeszcze nie mam tabeli. Na razie myślę nad tym teoretycznie. Btw, właśnie wpadłem na dobry pomysł jak to usprawnić ![]() |
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Cytat Btw, właśnie wpadłem na dobry pomysł jak to usprawnić
![]() No jak? ![]() -------------------- Brak czasu :/
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 118 Pomógł: 0 Dołączył: 14.02.2004 Skąd: Warszawa Ostrzeżenie: (10%) ![]() ![]() |
Dwie tabele: Jedna to userzy a druga to lista imprez. W liscie imprez będą zapisani userzy biorący w niej udział. Pobiera mi z bazy jedną imprezkę, nastpnie dzielę string 1:6:9:3:234:43:76 ... wstawiam do tabeli, robię for(...) selec z where='id_usera' dzięki czemy pobiera mi tylko userów z danej imprezy.
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Mozna to zrobic o wiele lepiej. To jest widze jednak relacja wiele do wielu, wiec trzebaby dodac jedna tabele pomocnicza.
Podam Ci uproszczona wersje. Tabele: users: id | imie | nazwisko | inne_dane... imprezy: id | data| inne_dane... users_imprezy: user_id | impreza_id Teraz dodawanie userow do danej imprezy wyglada tak, ze dodajesz wpisy do tabeli łączącej (users_imprezy), np dla imprezy o ID 2: Kod user_id | impreza_id
1 2 4 2 14 2 24 2 8 2 9 2 Oznacza to tyle, ze userzy o ID 1,4,14,24,8 i 9 sa przypisani do imprezy o ID=2. Teraz jak chcesz wybrac userow z danej imprezy (zakladam, ze znasz jej ID) robisz cos takiego: [sql:1:7c89827999]SELECT u.* FROM users u, users_imprezy ui WHERE u.id = ui.user_id AND ui.impreza_id = 2[/sql:1:7c89827999] Za 2 podstawiasz numer imprezy, z ktorej chcesz wybrac userow. -------------------- Brak czasu :/
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 118 Pomógł: 0 Dołączył: 14.02.2004 Skąd: Warszawa Ostrzeżenie: (10%) ![]() ![]() |
A właściwie czym się to różni od mojego sposobu? Bo rezultat jest identyczny...
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Wydajnoscia... i to znacznie, czym wieksza baza tym roznica bedzie wieksza.
-------------------- Brak czasu :/
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 00:41 |