1
我從here複製的代碼,並做出最小的變化如何將包含逗號的字符串(VARCHAR)傳遞給存儲過程?
DELIMITER $$
CREATE PROCEDURE updateTable (IN list_of_ids VARCHAR(32))
BEGIN
set @sql = concat("SELECT (" , list_of_ids, ")");
PREPARE stmt FROM @sql;
EXECUTE stmt;
END$$
call updateTable('1,2,3');
但是,當我打電話,我得到Error 1241: Operand should have one 1 column(s)
我用"
代替'
周圍的參數,它仍然給了同樣的錯誤。我也嘗試用"1,2,3"
字符串聲明一個變量,但它仍然失敗,我試圖call updateTable(concat("1,","2,","3"));
無濟於事。
我也試圖改變程序,預計3個參數,我得到了預期的錯誤Error 1318: Incorrect number of arguments
這一切正在做的MySql如果有人知道我錯過了,謝謝!我一直在Google上搜索答案。
感謝您的澄清,但現在我迷失在我想達到的目標中 此代碼現在生成一列「'1','2','3'」和一行「'1」 '2','3'「,我想要一個桌面智慧h一列「姓名」和三行。 我想插入多個值到表中,我想從參數中獲取這些值。因此,我需要在運行時創建一個表,並在表的每一行中使用「數組」中的值。 編輯:我不能在評論中表。 – Mendess
意味着您需要三列中的數據,即一列。 1 2和3在不同行中的值?或者你想根據傳遞的ID來選擇結果? –
我想要一列和三行數據。 – Mendess