![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 16.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
czy ktoś z tu obecnych rozwiązywał kiedyś problem wybierania rekordów z bazy wg zadanego zakresu kodów pocztowych? problem: jak wybrać kod 42-200 i odpowiadającego mu przedstawiciela jeśli w bazie istnieją zakresy kodów: osoba zakres opis przedstawiciel1 2-6 kody zaczynające się na 2 lub 6 przedstawiciel2 42-43 kody w zakresie 42000 do 43999 przedstawiciel3 42100-42299 dokładny zakres przedstawiciel4 42210-42210 dokładny pojedyńczy kod (miejscowość) jak widać z bazy powinni zostać wybrani przedstawiciele 1,2,3 przy czym 3 powinien znajdować się na pierwszym miejscu, jako najbardziej odpowiedni (najdokładniejszy wybór) Ten post edytował Enigmatis 16.01.2008, 16:48:35 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 311 Pomógł: 7 Dołączył: 2.08.2006 Skąd: Bystrzyca Kłodzka/Nysa Ostrzeżenie: (10%) ![]() ![]() |
Nie... ale mam tak z kodami ze w bazie mam kody obok nich nazwy miejscowosci i przy pomocy ajax i PHP gdy wpisuję kod to pojawia się miejscowość. Fajna rzecz
![]() |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Jeśli zamiast przechowywać w bazie:
Cytat przedstawiciel1 2-6 kody zaczynające się na 2 lub 6 będziesz przechowywał 20000, 69999 ( wszystkie liczby o tej samej ilości cyfr, dolna i górna granica zakresu w różnych kolumnach) to zapytanie będzie banalne:
-------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 16.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
niestety w bazie trzymane są właśnie takie krótkie "maski" (np. 2-6) i zmiana nie jest możliwa
jednak dzięki Twojej podpowiedzi Kicok wykombinowałem coś takiego: SELECT k.code_dol, k.code_gora, concat_ws(' ',a.agent_name,a.agent_surname ) as agent, r.reg_name as region FROM d_docs_codes as k INNER JOIN d_docs_regions as r ON( k.code_region = r.doc_id ) INNER JOIN d_docs_agents as a ON( k.code_przedstawiciel = a.doc_id ) WHERE ( rpad( k.code_dol,5,'0' ) <= 42100 ) AND ( rpad( k.code_gora,5,'9' ) >= 42100 ) ORDER BY ( rpad( k.code_gora,5,'9' ) - rpad( k.code_dol,5,'0' ) ) ASC serdeczne dzięki za pomoc ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 30.04.2025 - 05:37 |