首页 > 解决方案 > 当另一个表上不存在时,mysql在不同的列上插入数据

问题描述

所以我尝试在不存在的列上插入一个字符串,我不太确定我将使用的查询,但我正在尝试插入它,这是一个示例。

table1                  table2
|  col1  |    col2  |  | id  | data1 |
|:-----------------:|  |:-----------:|
|        |          |  |  1  | sample|
|:-------|---------:|  |:----|------:|

这里我将使用什么方法/查询,如果我试图在 col1 中插入的数据存在于 table2 上,它是示例然后将其插入 col1 但当它不存在于 table2 上时,我将它放在 col2 上

标签: mysql

解决方案


IF()对要插入每列的值使用表达式。

INSERT INTO table1 (col1, col2)
VALUES (IF(EXISTS(SELECT * FROM table2 WHERE data1 = ?), ?, ''),
        IF(EXISTS(SELECT * FROM table2 WHERE data1 = ?), '', ?))

推荐阅读