我正在尝试更新MYSQL表中的TEXT字段。即使原始INSERT尝试在用户不存在时正常工作,我也无法使UPDATE查询起作用。
如果用户尚不存在,则该函数的目的是INSERT新行;如果用户已存在于表中,则更新textColumn(始终包含JSON)。
我的代码:
let first = 'jake';
let last = 'mcdonald';
let first_json = JSON.stringify({a:7, b:7});
let second_json = JSON.stringify({a:'updated'});
const row = {
name: first,
last_name: last,
textColumn: first_json,
}
db.query(`SELECT * FROM tableName
WHERE name="${first}"
AND last_name="${last}"`, (err, result) => {
if (err) console.log(err);
if (result.length < 1) {
db.query(`INSERT INTO tableName SET ?`, row, (err, result) => {
console.log('NEW ROW CREATED: ', result);
})
} else if (result.length > 0) {
console.log('ROW EXISTS');
db.query(`UPDATE tableName
SET textColumn=${second_json}
WHERE name="${first}"
AND last_name="${last}"`, (err, result) => {
console.log('UPDATED: ', result);
}
)
}
}
)
else if
部分给出了我的问题:我到达内部console.log('ROW EXISTS')
但更新查询日志“未定义”。
如果我尝试UPDATE tableName SET name="someNewName" WHERE last_name="original_last_name"
,则相同的UPDATE查询有效,但当我尝试更新textColumn时没有任何反应。