Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Hайти похожие записи
 
 автор: elenaki   (14.04.2016 в 16:25)   письмо автору
 
 

Похожие, но не одинаковые. Надо сравнить два поля в каждой записи. Если совпадают последние 7 цифр, вывести имя (это тоже поле записи).

Например, есть запись
id+------name-------------+----phone ---+-----mobile--+
3 | BAJRAMI ARDIAN | 2102638011|6982638011|
========================================

Видно, что сотовый номер повторяет стационарный, если поменять код города 210 на код опeратора - 698. Это ошибка. А т.к. сейчас есть возможность найти правильный телефон, то хотелось бы исправить. Всего записей меньше 2 тыс. Можно это сделать запросом или надо скрипт писать?

  Ответить  
 
 автор: vadimka   (14.04.2016 в 17:13)   письмо автору
 
   для: elenaki   (14.04.2016 в 16:25)
 

Если правильно понял вопрос нужно сравнить номера без первых трех цифр?
т.е. строковые в мускуле.

SELECT RIGHT('phone', 7);

и сравнивать...

  Ответить  
 
 автор: elenaki   (15.04.2016 в 10:07)   письмо автору
 
   для: vadimka   (14.04.2016 в 17:13)
 

HET. Сравнивать строки напрямую в MySQL нельзя.

SELECT onoma, SUBSTR(`phone`, 4, 7) phone, SUBSTR(`mobile`, 4, 7) mobile FROM pelates WHERE
`phone` NOT LIKE "" AND
`mobile` NOT LIKE "" AND
phone = mobile


Так находит, но не всех. Того, что в примере, не находит.

Ага. Вижу, что обрезка не сработала. Т.е в результат-то mysql выдала обрезанные поля, но в выборку попали только те, у которых полное совпадение номеров.

  Ответить  
 
 автор: elenaki   (15.04.2016 в 10:41)   письмо автору
 
   для: elenaki   (15.04.2016 в 10:07)
 

Вот так вывело 205 из 1805, что похоже на правду.

SELECT onoma, phone, mobile, IF(SUBSTR(`mobile`, 4, 7)= SUBSTR(`phone`, 4, 7), '!!!', '') as attent FROM pelates WHERE
 `phone` NOT LIKE "" AND 
`mobile` NOT LIKE "" 
ORDER BY attent DESC, onoma ASC


Вывело всех, конечно, но тех, кто меня интересует - с !!! А уникальных имен и вовсе 120. Закину в Excel и отдам бухгалтерше, пусть исправляет.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования