这是我的更新请求:
UPDATE my_table
SET column_i_want_to_update = 'column value'
WHERE id_which_is_not_primary_key_nor_unique = 'id value'如果0行受此更新影响,我想运行我的insert请求:
INSERT INTO my_table (column_i_want_to_update, id_which_is_not_primary_key_nor_unique)
VALUES ('column value', 'id value')但我希望在一个请求而不是两个请求中执行该操作。我已经尝试过这个请求:
INSERT INTO my_table (id_which_is_not_primary_key_nor_unique, column_i_want_to_update)
VALUES ('id value', 'column value')
ON DUPLICATE KEY
UPDATE column_i_want_to_update = column_i_want_to_update但这不起作用,因为我的id既不是主键,也不是唯一的。有解决方案吗?提前谢谢。
发布于 2021-11-23 12:29:14
在两列上添加唯一索引。
ALTER TABLE `my_table`
ADD UNIQUE `my_unique_index`
(id_which_is_not_primary_key_nor_unique, column_i_want_to_update);现在ON DUPLICATE KEY UPDATE ...应该可以工作了。
发布于 2021-11-23 12:19:01
您可以使用and if表达式
IF(expression ,expr_true, expr_false);因此,在表达式中使用
SELECT IF(( mysql_affected_rows(&mysql) >0 THEN 'true' ELSE 'false'
END),'true','false');或者类似的东西
IF condition THEN
statements;
ELSE
else-statements;
END IF;https://stackoverflow.com/questions/70080691
复制相似问题