powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Замена значений в столбце таблицы
6 сообщений из 6, страница 1 из 1
Замена значений в столбце таблицы
    #39681570
Russ86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте,

Подскажите, возможно ли составить запрос для данного случая:
Имеется таблица (~600 000 строк). В ней нужно у одного столбца заменить значения с 500 000 по 600 000 строки на значения из csv/txt файла.

Предполагаю, что можно использовать LOAD DATA INFILE, но точно необходимый запрос не получается составить.
...
Рейтинг: 0 / 0
Замена значений в столбце таблицы
    #39681597
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Russ86Предполагаю, что можно использовать LOAD DATA INFILEАга, это первый шаг.

Russ86но точно необходимый запрос не получается составить.Покажите, как пытались составить.
...
Рейтинг: 0 / 0
Замена значений в столбце таблицы
    #39681599
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Russ86Предполагаю, что можно использовать LOAD DATA INFILEДа, во временную таблицу. Это будет запрос номер один.

Russ86заменить значения с 500 000 по 600 000 строкиЭто будет второй запрос. Но сначала надо будет точно определить, чем задаётся порядок, по какому признаку, при какой сортировке, будут отсчитываться номера строк.
...
Рейтинг: 0 / 0
Замена значений в столбце таблицы
    #39681901
Russ86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответы.

AkinaДа, во временную таблицу. Это будет запрос номер один.
Данный шаг сделал, создал временную таблицу.

AkinaНо сначала надо будет точно определить, чем задаётся порядок, по какому признаку, при какой сортировке, будут отсчитываться номера строк.
Пробовал добавить во временную таблицу дополнительный столбец product_id, значения которого бы совпадали со столбцом product_id, который есть в первой таблице. И выполнить запрос с заменой по условию:

UPDATE TableB
SET TableB.column = (
SELECT TableA.column
FROM TableA
WHERE product_id = product_id
);

Но это привело к ошибке:
#1242 - Subquery returns more than 1 row
...
Рейтинг: 0 / 0
Замена значений в столбце таблицы
    #39681935
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Russ86WHERE product_id = product_idвсегда даст True. Надо указать алиасы таблиц (и вообще возьмите за правило - если более одной таблицы - указывать алиас для КАЖДОГО поля):

Код: sql
1.
2.
3.
4.
5.
6.
UPDATE TableB
SET TableB.column = (
SELECT TableA.column 
FROM TableA
WHERE TableA.product_id = TableB.product_id
);


При этом предполагается, что TableA.product_id - уникальное.

Хотя в MySQL надо быть проще:

Код: sql
1.
2.
3.
UPDATE TableA, TableB
SET TableB.column = TableA.column 
WHERE TableA.product_id = TableB.product_id
...
Рейтинг: 0 / 0
Замена значений в столбце таблицы
    #39681995
Russ86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: html
1.
2.
3.
4.
5.
6.
UPDATE TableB
SET TableB.column = (
SELECT TableA.column 
FROM TableA
WHERE TableA.product_id = TableB.product_id
);


В данном варианте, где product_id совпадали, значения заменялись. А где не было соответствующих product_id значения просто стерлись.

Код: html
1.
2.
3.
UPDATE TableA, TableB
SET TableB.column = TableA.column 
WHERE TableA.product_id = TableB.product_id


Данный запрос сработал как надо, спасибо. Там где product_id совпали, значения заменились, а остальные остались нетронутыми.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Замена значений в столбце таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]