MySQL在单个语句中插入(有条件选择的表)
我的dbm知识仍然非常有限,因此我不确定如何处理/解决这个问题。我想插入两个表中的一个,比如说,表1和表2,但在SELECT子查询之后我才知道是哪个表。大概是这样的:MySQL在单个语句中插入(有条件选择的表),mysql,Mysql,我的dbm知识仍然非常有限,因此我不确定如何处理/解决这个问题。我想插入两个表中的一个,比如说,表1和表2,但在SELECT子查询之后我才知道是哪个表。大概是这样的: INSERT INTO (SELECT tblname) SELECT *, IF(somecondition, 'table1', 'table2') as tblname FROM `anothertable` WHERE id = 'someid' 我试着以此作为测试: INSERT INTO (SELECT tblnam
INSERT INTO (SELECT tblname) SELECT *, IF(somecondition, 'table1', 'table2') as tblname FROM `anothertable` WHERE id = 'someid'
我试着以此作为测试:
INSERT INTO (SELECT tblname) SELECT *, 'table1' as tblname FROM `anothertable` WHERE id = 'someid'
但那没用
我知道我可以在SELECT语句中使用子查询,非常有用!,从技术上讲,我可以实现我想要的,但不存在于两个语句中,我知道我不能插入到两个表中,我知道在一个语句中使用@user变量是不可靠的。那么,有没有一种方法可以在一个语句中实现我想要的呢?您可以使用case语句来实现
SELECT CASE WHEN ( SELECT IF(somecondition, 'table1', 'table2') as tblname FROM `anothertable` = 'table1' )
THEN <QUERY A>
ELSE <QUERY B>
END
你可以用case语句来做
SELECT CASE WHEN ( SELECT IF(somecondition, 'table1', 'table2') as tblname FROM `anothertable` = 'table1' )
THEN <QUERY A>
ELSE <QUERY B>
END
嗨,我试过这个,和它的变体,但似乎什么都不起作用。嗨,我试过这个,和它的变体,但似乎什么都不起作用。我不这么认为,除了单个stmt是对存储过程的调用之外。这里有条件连接,但没有条件表。别忘了,你可以随时连接到任何准备好的Stmt中,如下面所示。我不这么认为,除了单个Stmt是对存储过程的调用之外。这里有条件连接,但没有条件表。别忘了,你可以像下面这样一直连接到任何准备好的Stmt中