MariaDB 函数

MariaDB MAKE_SET() 函数返回一个设置值(一个包含用","字符分隔的子字符串的字符串),该值由具有相应位设置的字符串组成。 str1、str2、... 中的 NULL 值不会附加到结果中。

语法

MAKE_SET(bits, str1, str2, str3,...) 

参数

bits必填。 指定位集。
str1, str2, str3,...必填。 指定字符串列表。

返回值

返回一个设置值(包含由"分隔的子字符串的字符串" ," 字符),由设置了相应位的字符串组成。

MariaDB MAKE_SET() 函数

示例 1:

下面的示例展示了 MAKE_SET() 函数的用法。

SELECT MAKE_SET(1, 'Learning', 'MariaDB', 'is', 'fun');
Result: 'Learning'

SELECT MAKE_SET(1|2, 'Learning', 'MariaDB', 'is', 'fun');
Result: 'Learning,MariaDB'

SELECT MAKE_SET(1|4, 'Learning', 'MariaDB', 'is', 'fun');
Result: 'Learning,is'

SELECT MAKE_SET(1|6, 'Learning', 'MariaDB', 'is', 'fun');
Result: 'Learning,MariaDB,is'

SELECT MAKE_SET(1|8, 'Learning', 'MariaDB', 'is', 'fun');
Result: 'Learning,fun'

SELECT MAKE_SET(1|14, 'Learning', 'MariaDB', 'is', 'fun');
Result: 'Learning,MariaDB,is,fun'

SELECT MAKE_SET(15, 'Learning', 'MariaDB', 'is', 'fun');
Result: 'Learning,MariaDB,is,fun'

SELECT MAKE_SET(15, 'A', 'B', NULL, 'D');
Result: 'A,B,D' 

示例 2:

考虑一个名为 Employee 的数据库表,其中包含以下记录:

EmpIDNameDepartment1Department2Department3
1JohnHRAdminTreasury
2MarryITFinance
3JoFinanceMarketing
4KimMarketingSales
5RameshITFinanceMarketing
6HuangITMarketingSales

下面给出的语句可用于获取集合由位集中的位指定的值。

/* 28的二进制为11100 */
SELECT *, 
MAKE_SET(28, EmpID, Name, Department1, Department2, Department3) AS MAKE_SET_Value 
FROM Employee; 

这将产生如下所示的结果:

EmpIDNameDepartment1Department2Department3MAKE_SET_Value
1JohnHRAdminTreasuryHR,Admin,Treasury
2MarryITFinanceIT,Finance
3JoFinanceMarketingFinance,Marketing
4KimMarketingSalesMarketing,Sales
5RameshITFinanceMarketingIT,Finance,Marketing
6HuangITMarketingSalesIT,Marketing,Sales