2015-11-20 3 views
0

У меня есть таблица infoАлгоритмы сравнения нескольких полей

CREATE TABLE `info` (
    `id` int(11) NOT NULL DEFAULT '0', 
    `name` varchar(50) NOT NULL, 
    `email` varchar(50) NOT NULL, 
    `phone` varchar(50) NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 

Сопоставимые поля являются имя, адрес электронной почты и телефон.

Мое правило сравнения: любые два из трех полей равны, то две записи равны.

Так что мой вопрос - это самый эффективный способ реализации этой функции.

P.S. При необходимости я могу добавить дополнительные поля.

ответ

1

MySQL возвращает 1 для true и 0 для false.

Select * From info 
WHERE (name = 'name') + (email = 'email') + (phone = 'phone') > 1 
+0

Я думаю, что ОП хочет создать ограничение при создании таблицы самой –

+0

С этим 'where' пункта, как добавить индекс для повышения производительности поиска? –

+0

читайте это для более подробной информации об индексе http://dev.mysql.com/doc/refman/5.7/en/mysql-indexes.html @ChongYoung –

Смежные вопросы