2013-10-08 36 views
0

mysql可以返回多個單元格中的1個字符串嗎?
mysql函數返回1個字符串中的多個值

在sqlserver的我可以使這樣

CREATE FUNCTION [dbo].[getTribunByOrder] 
(
    @idtrorder varchar(10) 
) 
RETURNS varchar(1000) 
AS 
BEGIN 
    declare @trtribun varchar(1000) 
    set @trtribun = '' 
    select @trtribun = @trtribun + nametribun +'='+ convert(varchar(3),jumlah) + ',' 
      from trtribun b 
      where idtrorder = @idtrorder 
    set @trtribun = substring(@trtribun, 0, len(@trtribun)) 
    RETURN @trtribun 
END 

返回該功能的功能= 「NAME1 = 1,NAME2 = 3,NAME3 = 2」
可以在mysql創建這樣功能?

+0

如果您要將數據提供給某些代碼,那麼您最好不要直接提取數據,而是在代碼中構建字符串。 – Alex

+0

這個函數將在一個存儲過程中調用,我希望我的程序調用1個存儲過程,而不是稱爲其他存儲過程千次: –

回答

2

當然可以:

使用CONCAT例如,你可以在一個行返回多列:

SELECT CONCAT(column1,column2,...) FROM ... 

而且使用GROUP_CONCAT您可以在一個行返回多行

SELECT GROUP_CONCAT(column1) FROM... WHERE... GROUP BY column1 

看看這裏http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat和這裏http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat

+0

它的幫助,但爲什麼第一排進來? 返回值是「row2,row3,...,rown,row1」。我已經使用order by和它的作品,但不適合group_concat。 任何想法? –

+0

哦,我看到..按group_concat()中的作品排序,所以我必須group_concat(column1 order by column2)才能使它工作。 thx sal00m –

+0

那麼,你回答自己,好工作:) – Sal00m