Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как лучше хранить телефонные номера в mysql?

85K
20 сентября 2012 года
rusgrimekid
1 / / 20.09.2012
В каком формате удобнее хранить номера телефонов(в формате 8(xxxx)xx-xx-xx) в mysql?
8
21 сентября 2012 года
mfender
3.5K / / 15.06.2005
Если нужен поиск, то Varchar.
Если нужен поиск с учётом страны и города, то код страны в одной таблице, код города в другой, в третьей - телефон (INTEGER) и поля идентификаторов, привязанные к стране и городу. Вывод - конкатенация CONCAT_WS() со связыванием.
Если поиск не нужен - tinytext

UPD. Тут ведь ещё вот что... Зачем хранить "8"? Это всего лишь принятый в мире сигнал для выхода на межгород.

EXAMPLE.
Код:
//Таблица city

==================================
|    id    |city_name |phone_code|
==================================
|    1     |  Moscow  |   495    |
----------------------------------
|    2     |  Maikop  |   8772   |
----------------------------------



//Таблица phones

==================================
|        id| city_code| phone_num|
==================================
|         1|         1|   1234567|
----------------------------------
|         2|         1|   8545621|
----------------------------------
|         3|         2|    325641|
----------------------------------

//Запрос SQL

SELECT @A := reverse(phones.phone_num) AS rnum
     , concat('8 (',
          city.phone_code,
          ') ',
          concat_ws('-',
              reverse(substring(@A, 5)),
              reverse(substring(@A, 3, 2)),
              reverse(substring(@A, 1, 2))
          )
       ) AS phone
     , city.city_name
FROM
  city
INNER JOIN phones
ON city.id = phones.city_code


//На выхлопе получаем

================================================================
|        rnum        |       phone        |     city_name      |
================================================================
|      7654321       | 8 (495) 123-45-67  |       Moscow       |
----------------------------------------------------------------
|      1265458       | 8 (495) 854-56-21  |       Moscow       |
----------------------------------------------------------------
|       146523       | 8 (8772) 32-56-41  |       Maikop       |
----------------------------------------------------------------
90K
22 марта 2013 года
Kapus
1 / / 22.03.2013
Помимо формата хранения еще немаловажный вопрос структура данных. Хорошая статья про хранение телефонных номеров в БД тут: Хранение телефонных номеров в базе данных.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог