将Column值作为MySQL中的变量传递

时间:2017-10-05 16:27:52

标签: mysql

在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)')`  `

1 个答案:

答案 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;

此外,根据您的问题,我必须说,为公司表中的每个公司名称创建一个表格是一个糟糕的设计,只会导致沮丧和失望。