Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2014, 17:16   #1
Matras
Пользователь
 
Регистрация: 08.03.2011
Сообщений: 32
По умолчанию Помогите пофиксить запрос sql

IF EXISTS UPDATE `oc_product_attribute` SET text='2013/2014' WHERE product_id='38710'
ELSE
INSERT INTO oc_product_attribute VALUES ('38710','110','2','2013/2014');

Нужно обновить если нет то вставить,пробовал так но че т не выходит.
Matras вне форума Ответить с цитированием
Старый 17.01.2014, 17:22   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А что в EXISTS? Там в качестве аргумента запрос SELECT должен быть
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 17.01.2014, 17:25   #3
Matras
Пользователь
 
Регистрация: 08.03.2011
Сообщений: 32
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
А что в EXISTS? Там в качестве аргумента запрос SELECT должен быть
Пробовал так
Код HTML:
IF EXISTS (SELECT * FROM oc_product_attribute ) then UPDATE `oc_product_attribute` SET text='2013/2014' WHERE product_id='38710'
ELSE
INSERT INTO oc_product_attribute(product_id,attribute_id,language_id,text) VALUES ('38710','110','2','2013/2014');
Пишет
Код HTML:
[SQL] IF EXISTS (SELECT * FROM oc_product_attribute) then UPDATE `oc_product_attribute` SET text='2013/2014' WHERE product_id='38710'
ELSE
INSERT INTO oc_product_attribute(product_id,attribute_id,language_id,text) VALUES ('38710','110','2','2013/2014');
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF EXISTS (SELECT * FROM oc_product_attribute) then UPDATE `oc_product_attribute' at line 1
Matras вне форума Ответить с цитированием
Старый 17.01.2014, 17:31   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

В том SELECT-е и условие WHERE как-бы должно быть. И это все оформить как хранимую процедуру
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 17.01.2014, 17:55   #5
Matras
Пользователь
 
Регистрация: 08.03.2011
Сообщений: 32
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
В том SELECT-е и условие WHERE как-бы должно быть. И это все оформить как хранимую процедуру
А как его туда прописать?
Matras вне форума Ответить с цитированием
Старый 17.01.2014, 18:43   #6
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF EXISTS (SELECT * FROM oc_product_attribute) then UPDATE `oc_product_attribute' at line 1
это кто будет делать, аспушкин?
eval вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос на sql.Помогите подправить Alenochka1717 SQL, базы данных 19 25.12.2013 22:50
помогите составить SQL запрос!!!! MAKSA БД в Delphi 12 07.08.2009 11:12
Помогите создать SQL запрос Rain9 SQL, базы данных 5 25.11.2008 08:54
Помогите написать SQL запрос Vedrus SQL, базы данных 1 22.07.2008 13:21
Несложный SQL запрос. Помогите, пожалуйста novicer БД в Delphi 2 10.05.2007 16:21