@Senseich

Правильно ли написан SQL запрос для изменения данных в выборке?

Всем привет! Подскажите, правильно ли я написал запрос.
Мне нужно выбрать определенные записи из базы у которых столбец `category` равен 42 и 43.
И потом в этих всех записях изменить значения в столбце `keywords`.
Я боюсь, что заменю значения в столбце `keywords` вообще во всей таблице.

Я написал так:
SELECT * FROM `dle_post` WHERE `category` LIKE '42,43' ORDER BY `date` DESC;
UPDATE `dle_post` SET `keywords`='ключевые слова'
  • Вопрос задан
  • 57 просмотров
Решения вопроса 2
@yaroslavche
SELECT * FROM `dle_post` WHERE `category` LIKE '42,43' ORDER BY `date` DESC;

неправильный запрос. Будет искать посты, где категория == '42,43'. Сомневаюсь, что такие есть. Надо бы, наверное
SELECT * FROM `dle_post` WHERE `category` in (42, 43) ORDER BY `date` DESC;

В Вашем случае UPDATE проапдейтит все.

Но можно без селекта, просто сразу указать, что нужно проапдейтить.
UPDATE `dle_post` SET `keywords`='ключевые слова' WHERE `category` in (42, 43)
Ответ написан
@SergioMaroni
В вашем варианте просто выполнятся по очереди 2 независимых запроса:
Сначала просто Селект
SELECT * FROM `dle_post` WHERE `category` LIKE '42,43' ORDER BY `date` DESC;


Потом просто Update по все таблице
UPDATE `dle_post` SET `keywords`='ключевые слова'
Я считаю что необходимо использовать Update с указанием условий:
UPDATE `dle_post` SET `keywords`='ключевые слова'
Where `category` LIKE '42,43'

При этом Desc, Order указывать не надо
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы