MySQL IF (SELECT) для изменения значения столбца - PullRequest
0 голосов
/ 25 апреля 2020

Сначала я создаю таблицу, в которой у меня есть 6 заголовков / столбцов, затем добавляю туда столбец и устанавливаю значение по умолчанию для этого нового столбца. Часть, которую я пытаюсь изменить, - это новый столбец, который я установил. У меня есть несколько мест, где значение по умолчанию может измениться - на основе другого столбца, который является чисто формой данных, которые я импортировал.

Мой код выглядит следующим образом:

SET GLOBAL local_infile=1;
CREATE TABLE audio(
    File_Name CHAR(4) PRIMARY KEY,
    File_Subdirectory CHAR(50),
    ....,
    ....,
    ....,
    ....,
);

-- Created table with the headers described above (left out 4 column names)

LOAD DATA LOCAL INFILE 'audio.csv'
     INTO TABLE audio
     FIELDS TERMINATED BY ',';

-- Loaded data into the right columns, even when I check with SELECT * FROM audio looks good

ALTER TABLE audio ADD COLUMN Microphone VARCHAR(15) DEFAULT 'Forward' AFTER File_Directory

-- Successful added a column after File_Directory with header Microphone and default was Forward for all entries/rows. 

IF (SELECT File_Directory FROM audio WHERE File_Driectory = 'Home')
    SET Microphone = 'Not Forward'
END IF;

-- Here I want to change the Microphone column (3rd column now - previously added and set default to be 'forward') to be 'Not Forward' if the File_Directory column has variable/entry to be home.

Кроме того, если я делаю следующее, я получаю записи, которые я ищу и которые я хотел бы изменить в этом третьем столбце. Он распечатывает столбец с несколькими строками, в которых в качестве записи написано «Home». Эти строки - те, которые я хотел бы изменить в новом столбце, который я добавил, я хочу изменить его со значения по умолчанию «вперед» на «не вперед».

SELECT File_Directory FROM audio WHERE File_Driectory = 'Home'

Моя проблема связана с последним оператором, поскольку Я не могу установить или изменить запись в этом третьем столбце ... это не так, я не могу, я не уверен, что я делаю неправильно с оператором IF. Я надеюсь, что код, который я предоставил, достаточно, чтобы дать мне быстрое решение. Я пропустил остальные 4 названия столбцов, так как они не имеют отношения, и я ничего не делаю в них. Я снова загружаю данные из csv, успешно добавляю столбец с заголовком / и полем по умолчанию (что является большинством), мне просто нужно изменить несколько мест, где новый столбец должен иметь другое имя / запись.

Любые предложения будут полезны! Спасибо!

1 Ответ

1 голос
/ 25 апреля 2020

Я смог решить эту проблему легко, даже не используя оператор IF. Я использовал команду UPDATE.

UPDATE audio SET Microphone = 'Not forward' WHERE File_Directory = 'Home'
...