2017-10-05 56 views
-1

在Mysql中,我試圖找到一種將列值傳遞給變量的方法。然後在另一個查詢中使用該變量作爲表名...下面是它的MsSQL版本,請幫我找一個相當於Mysql的表。將列值作爲MySQL中的變量傳遞

declare @tblname1 varchar(400) 
set @tblname1=(SELECT companyname from companies where id=5) 
exec(' SELECT sh.streetname FROM '[email protected]+' sh WHERE sh.id IN (SELECT id from allstreets)')` ` 

回答

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; 

此外,根據你的問題,我必須說,在公司表中的每個公司名稱創建一個表是一個糟糕的設計,並且只能導致挫折和失望。