2010-12-09 2 views
3

я должен выполнить нагрузки следующих запросовданных MySQL нагрузки входной_файлом

UPDATE translations SET translation = (SELECT description FROM content WHERE id = 10) WHERE id = 1; 

Теперь я использую INFILE данных нагрузки делать вставки и замены, но то, что я хочу в пакете ESense является обновить только 1 поле для каждого строка в этой таблице, не вмешиваясь в ключи. Что может быть синтаксисом для этого, обратите внимание, что запросы влияют только на существующие строки.

Thanx

ответ

6
  • Использование CREATE TEMPORARY TABLE создать временную таблицу.
  • Затем используйте LOAD DATA INFILE для заполнения этой временной таблицы.
  • Затем выполните свой UPDATE translations SET translation = ..., чтобы установить поле 1 из SELECT временной таблицы, ПРИСОЕДИНИЕСЯ с реальной таблицей. Пример синтаксис ниже:

    UPDATE realTable, tmpTable 
        SET realTable.price = tmpTable.price 
        WHERE realTable.key = tmpTable.key 
    
+0

хорошая идея, я дам ему идти. Тонкий помощник – mbouclas 2010-12-10 07:03:29

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