[英]replace a column with a column's value in another table in MySQL select
[英]select table and replace column fields by value from another table in mysql
我過去 3 年一直在使用 ms SQL,我是 MySQL 的新手,最近我們有一些 MySQL 要求來選擇一個表並按另一個表中的值替換列字段。 我已將工作 ms SQL 查詢轉換為 MySQL。 執行 MySQL 查詢時出現異常。 附表說明。在此處輸入圖像說明請就此提出建議。
以下是我嘗試過的查詢
SET @v_Type := 'Account'; // where condition type =account
SET @select := 'SELECT';
SET @columns:= ( SELECT CONCAT('CONVERT(' , `ColDataType` , ', Col' , CONVERT(VARCHAR, `ColNum`) , ') AS [' , `ColName` , '],') FROM `Names` WHERE `TYPE` = @v_Type FOR XML PATH('') )
SET @where:='FROM `Data` WHERE [Type] = ''' + @v_Type + ''''
SET @statement = CONCAT(@select,@columns,@where);
PREPARE myStatement FROM @statement;
EXECUTE myStatement;
在執行時我得到了這樣的錯誤
查詢: set @columns:= ( SELECT CONCAT('CONVERT(' ,
ColDataType
, ', Col' , CONVERT(VARCHAR,ColNum
) , ') AS [' ,ColName
, '],') ...錯誤代碼:1064 您的 SQL 語法有錯誤; 檢查與您的 MySQL 服務器版本相對應的手冊,以獲取在第 2 行的 'VARCHAR,
ColNum
) , ') AS [' ,ColName
, '],') FROM `Name' 附近使用的正確語法
提前致謝。
SELECT CONCAT( 'SELECT ', GROUP_CONCAT(CONCAT('col', colnum, ' ', colname)),
' FROM data',
' WHERE type = ?')
INTO @sql
FROM names
WHERE type = @v_type
GROUP BY type;
PREPARE myStatement FROM @sql;
EXECUTE myStatement USING @v_type;
DROP PREPARE myStatement;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.