2013-11-23 2 views
-1

У меня есть следующий оператор выбора, оно получает значение writingExericses.text для людей, которые не имеют exchange.introductionпревращение оператора выбора в обновлении один

SELECT `courses`.`writingExercises`.`text`, 
`general`.`exchange`.`name` 
FROM `general`.`exchange`, `courses`.`writingExercises` 
WHERE `general`.`exchange`.`introduction` = '' 
AND `general`.`exchange`.`id` = `courses`.`writingExercises`.`userID` 
AND `courses`.`writingExercises`.`lessonID` = 1 

Как я могу изменить его так, что он устанавливает пользователей exchange.introduction как их writingExercises.text для этих пользователей, которые не имеют exchange.introduction?

+1

-1. Google - ваш друг. Если вы все еще не понимаете, как это сделать, тогда опубликуйте то, что вы пробовали, и то, что вы не угадали. – ApplePie

+0

Оператор обновления также имеет предложение 'WHERE', которое в вашем случае, вероятно, будет идентичным. Остальная информация, которую вы должны предоставить, - это то, что вы хотите «УСТАНОВИТЬ» обновленные строки. Это должно дать вам хорошее начало :) –

+1

ОБНОВЛЕНИЕ 'general' .'exchange',' курсы'''писаниеИнструменты' '' '' '' ''''''''''''''''''''''''' WHERE 'general'.'exchange' .'introduction' = '' И' general'.'exchange'.''''''''''''Для проведения занятий'''услуги'''''''ДругоеДискусы'.' lessonID' = 1? – Jake

ответ

1

Чтобы превратить оператор выбора в оператор обновления,

заменить SELECT ... FROM с UPDATE ключевым словом

добавить пункт SET прямо перед WHERE п

например начиная с этим оператором выбора

SELECT w.text 
    , e.name 
    FROM general.exchange e 
    JOIN courses.writingExercises w 
    ON e.id = w.userID 
WHERE w.lessonID = 1 
    AND e.introduction = '' 

мы получим обновление заявление, как это:

UPDATE general.exchange e 
    JOIN courses.writingExercises w 
    ON e.id = w.userID 
    SET e.introduction = w.text  
WHERE w.lessonID = 1 
    AND e.introduction = '' 

(Это не было ясно (мне) из вашего вопроса, хотите ли вы изменить значение столбец «введение» или столбца «текст». В приведенном выше примере задается значение столбца введения. Отсутствие описания схемы и определения таблиц, трудно сказать ...)

Но это демонстрирует общий подход к как превратить инструкцию SELECT в многопользовательскую статистику UPDATE nt в MySQL.

+0

Условие предложения должно прийти перед предложением from, no? –

+0

@Dan Bracuk: нет в MySQL, нет, в инструкции UPDATE нет предложения FROM/keyword. Предложение 'SET' (по меньшей мере, для мультифункционального обновления) появляется после ссылки таблицы и непосредственно перед предложением WHERE. – spencer7593

Смежные вопросы