Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Baza numerów telefonicznych
Forum PHP.pl > Forum > Bazy danych > MySQL
KR2615
Witam. Mam bazę numerów telefonicznych zapisanych w formacie 9-cio cyfrowym. Chciałbym z niej szybko wybrać złote numery, np. 123 77 88 77 albo 123 456 456. Nie chciałbym wybierac wszystkich rekordów po kolei, rozbijac je na pojedyncze cyfry i sprawdzac czy np. czwarta cyfra jest rowna piątej a szósta siódmej itp. Zastanawiam się, czy jestem w stanie sformułowac zapytanie mysql które wybierze mi interesujące mnie numery. Jak na razie udało mi się sformułować tylko takie dwie kwerendy:
  1. SELECT * FROM `prefix` WHERE number LIKE '123%0%0%0' ORDER BY number DESC
  2. SELECT * FROM `prefix` WHERE number LIKE '123%000' ORDER BY number DESC

Z gory dzięki za pozostałe podpowiedzi.
sowiq
Poniższe zapytanie wybierze Ci numery z końcówką "321".

  1. SELECT * FROM `prefix`
  2. WHERE ROUND(number % 10) = 1 -- ostatnia cyfra = 1
  3. AND ROUND(number / 10 % 10) = 2 -- druga od końca = 2
  4. AND ROUND(number / 100 % 10) = 3 -- trzecia od końca = 3


W podobny sposób możesz porównywać ze sobą poszczególne cyfry z numerów:
  1. SELECT * FROM `prefix`
  2. WHERE ROUND(number % 10) = ROUND(number / 10 % 10) -- ostatnia cyfra = przedostatnia cyfra
KR2615
Dzieki sowiq, oświeciłeś mnie! W ten sposób rozpykam sobie wszystkie interesujące mnie numerki wink.gif Tylko że musiałem zastąpićfunkcję ROUND() na FLOOR() bo wyrzucała mi numery z koncówkami 67, 89 itp.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.