MySQL IF (SELECT) 为了改变列值

MySQL IF (SELECT) in order to change a Column value

我首先创建一个 table,其中有 6 个 headers/columns,然后我在其中添加一列并为该新列设置默认值。我要修改的部分是我设置的新列。我有一些默认值会更改的地方 - 基于纯粹来自我导入的数据的不同列。

我的代码如下:

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' 被写为条目。这些行是我想更改我添加的新列的行,我想将其从默认 'forward' 更改为 'not forward'.

SELECT File_Directory FROM audio WHERE File_Driectory = 'Home'

我的问题出在最后一条语句上,因为我无法设置或更改第三列的条目...不是我不能,我不确定我在 IF 上做错了什么陈述。我希望我提供的代码足以给我一个快速的解决方案。我省略了其他 4 个列名,因为它们不相关,我也没有在其中做任何事情。我再次从 csv 加载数据,成功添加了一个带有 header/and 默认字段的列(这是大多数),我只需要更改新列需要具有不同 name/entry 的几个地方。

任何建议都会有所帮助!谢谢!

我什至不用 IF 语句就能轻松解决这个问题。我使用了更新命令。

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