在Mysql中,我想找到一种方法将列值传递给变量。然后在另一个查询中使用该变量作为表名...下面是它的MsSQL版本,请帮我找一个等价的Mysql。
declare @tblname1 varchar(400)
set @tblname1=(SELECT companyname from companies where id=5)
exec(' SELECT sh.streetname FROM '+@tblname1+' sh WHERE sh.id IN (SELECT id from allstreets)')` `
答案 0 :(得分:0)
请查看以下内容:https://dev.mysql.com/doc/refman/5.7/en/sql-syntax-prepared-statements.html
set @tblname1=(SELECT companyname from companies where id=5);
PREPARE stmt1 FROM CONCAT('SELECT sh.streetname FROM ', @tblname1, ' sh WHERE sh.id IN (SELECT id from allstreets)');
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
此外,根据您的问题,我必须说,为公司表中的每个公司名称创建一个表格是一个糟糕的设计,只会导致沮丧和失望。