SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 29.03.2010 18:58:52

drugsmouse
Участник
Зарегистрирован: 29.03.2010
Сообщений: 3

Запрос на проверку сущесвования вводимых данных в базе

Добрый день. Хочу попросить помощи в составлении mysql запроса.

Что собсвенно имеется:
есть таблица пользователей users. В этой таблице есть поля mac1, mac2, mac3 ... mac8, описывающие мак адреса, принадлежащие одному клиенту. Так вот при добавлении нового клиента нужно проверить что бы вводимого мака не было уже в одном из полей ( mac1 .. mac8 ) уже существующих записей пользователей...
Я вот думал над вариантом

SELECT mac1, mac2, mac3, ... mac8 from users where mac1 like "вводимый мак" or mac2 like "вводимый мак" or ...... ;

но это вроде как то не очень корректо. А если в базе 5000 записей, и на каждой записи хотя бы по 3 мака....
Может можно как нить оптимизировать запрос???
Заранее благодарен за потраченное время.

Отредактированно drugsmouse (29.03.2010 18:59:42)

Неактивен

 

#2 29.03.2010 19:07:45

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Запрос на проверку сущесвования вводимых данных в базе

Можно сделать одно поле mac, которое будет уникальным ключом. При этой схеме на одного клиента будет несколько записей в таблице.

Неактивен

 

#3 30.03.2010 10:10:30

drugsmouse
Участник
Зарегистрирован: 29.03.2010
Сообщений: 3

Re: Запрос на проверку сущесвования вводимых данных в базе

Оно то конечно можно. Только вот таблицу менять уже не представляется возможным, т.к. она (с текущей структурой) используется во многих скриптах. Может можно как нить можно решить эту проблему с текущей структурой базы?

Неактивен

 

#4 30.03.2010 10:36:17

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Запрос на проверку сущесвования вводимых данных в базе

Проблемы собственно нет. При текущей структуре лучше вы не сделаете.
Добавление нового пользователя это не ежесекундная операция и длительность не столь критична.

Единственно, что не понятно, так зачем вы используете LIKE, а не =.

Неактивен

 

#5 30.03.2010 10:58:14

drugsmouse
Участник
Зарегистрирован: 29.03.2010
Сообщений: 3

Re: Запрос на проверку сущесвования вводимых данных в базе

Большое спасибо за информацию. Принял к сведению...

Неактивен

 

#6 31.03.2010 00:05:25

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Запрос на проверку сущесвования вводимых данных в базе

К слову сказать, кто мешает переписать сценарии над текущей базой
(с учетом, что у одного пользователя может быть несколько строк по
несколько маков), а потом второе «несколько» уменьшить до одного?

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson