|
|
|
| Есть задача даеться xml файлик с товарами (id, name, price....) нужно сопоставить это все с базой, если в базе есть товар с таким id то запрос вида update, а если нет то соответственно insert если ли возможность сделать так чтобы после каждого товара не делать запрос к базе проверяя наличие товара, а сформировать один запрос? | |
|
|
|
|
|
|
|
для: LexXL
(24.04.2008 в 15:10)
| | Для этого предусмотрен специальный оператор REPLACE | |
|
|
|
|
|
|
|
для: cheops
(24.04.2008 в 15:41)
| | согласен но replace удалит предыдущую запись и вставит новую - проблема в том что в бд могут быть некоторые поля которые редактировали с "админки" на сайте например поле "путь _к_картинке", а в xml - только (id, name, description, prise) - так что как мне кажется replace тут не подходит
может делать типа:
----------------
//вставить если нет
INSERT ..... IF NOT EXISTS (select * from `tovar` where id=$id) ....
//и тут же править - так как есть запись уже в любом случае
Update .... where id=$id
получается что сформированный запрос будет больше но его можно выполнить за раз каждый раз дополняя, оставив на "конец" скрипта...
что скажете? | |
|
|
|