Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Помогите составить запрос
Покинул форум
Сообщений всего: 7
Дата рег-ции: Июнь 2011
Помог: 0 раз(а)
Здравствуйте.
Имеется у меня таблицы users_data. В ней поля id, user_id, key, value.
Необходимо редактировать поле value в записи с нужными значениями user_id и key, а при отсутствии такой записи добавить.
PS: MySQL.
iflight
Отправлено: 23 Августа, 2011 - 13:13:42
Гость
Покинул форум
Сообщений всего: 119
Дата рег-ции: Март 2011 Откуда: Россия, Сыктывкар
Помог: 2 раз(а)
Селект записи с нужным id и ключем, если такой записи нет то инсерт, если есть, то апдейт. Зпросы примерно такие:
Покинул форум
Сообщений всего: 7
Дата рег-ции: Июнь 2011
Помог: 0 раз(а)
Мелкий, unique или Primary key не auto_increment нет. Про "INSERT ... ON DUPLICATE" читал, но немного не подходит. Дело в том что у меня может быть несколько записей с одним user_id и может быть один key для пользователей с разными user_id.
Похоже что придется делать логику на PHP.
iflight
Отправлено: 23 Августа, 2011 - 16:42:18
Гость
Покинул форум
Сообщений всего: 119
Дата рег-ции: Март 2011 Откуда: Россия, Сыктывкар
Помог: 2 раз(а)
А если составной ключ сделать?
Champion
Отправлено: 23 Августа, 2011 - 16:44:43
Активный участник
Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008 Откуда: Москва
Помог: 57 раз(а)
составной уникальный ключ по (user_id,key) и insert on duplicate key update и всё
GiD-Man
Отправлено: 23 Августа, 2011 - 17:14:35
Новичок
Покинул форум
Сообщений всего: 7
Дата рег-ции: Июнь 2011
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.