[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Объеденение двух запросов в один
John Cena
Доброе время суток доскажите как можно два запроса объединить в один:


PDO::execute('insert into user set location = "africa"')
PDO::execute('insert into user set img = "'.PDO::lastInsertId().'.jpg"')


вместо этого можно ли сделать один запрос типа такого:


PDO::execute('insert into user set location = "africa", img = (id+".jpg")')


- типа вот такого.

тиблица user состоит из 3 полей: id (autoincrement, primary), location (varchar) и img (varchar)

Заранее спасибо за ответы



Спустя 15 минут, 8 секунд (22.09.2011 - 19:25) killer8080 написал(а):
Второй запрос должен быть update, а не insert.
Хотя я вообще не понимаю какой смысл делать поле img.

Спустя 28 минут, 40 секунд (22.09.2011 - 19:53) John Cena написал(а):
я там описался, извиняюсь, там должен быть update

таблицу я привел не настоящую, просто для примера, подобную той которая есть

так можно ли объединить это в один запрос?

Спустя 1 час, 8 минут, 7 секунд (22.09.2011 - 21:02) killer8080 написал(а):
John Cena
почитай про нормализацию баз данных.
Поле img у тебя получается расчётным путём от id, а это нарушает третью нормальную форму. Выкинь это поле, а вывод можно делать так
SELECT `location`, CONCAT(`id`.'.jpg') AS `img` FROM `table`

Спустя 29 минут, 12 секунд (22.09.2011 - 21:31) John Cena написал(а):
в некоторых случаях img берется из внешних сайтов да бы не занимать место на сервере, поэтому img не всегда равно id

Спустя 20 минут, 27 секунд (22.09.2011 - 21:51) killer8080 написал(а):
Ну тогда без UPDATE не обойтись, потому как в момент выполнения insert-а, id ещё не известен.
Хотя возможен вариант с триггерами, если поддерживаются.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.