从mysql中的int列获取集合位的索引

从mysql中的int列获取集合位的索引,sql,mysql,Sql,Mysql,有没有人有任何SQL fu(可以是特定于MySQL的)可以在不使用过程的情况下给我一个int中的集合位索引?做个手术怎么样 例如,假设: create table example (val int); insert into example values (1), (2), (3), (4), (256); 我可以看到设置位: select conv(val, 10, 2) from example; +------------------+ | conv(val, 10, 2) | +---

有没有人有任何SQL fu(可以是特定于MySQL的)可以在不使用过程的情况下给我一个int中的集合位索引?做个手术怎么样

例如,假设:

create table example (val int);
insert into example values (1), (2), (3), (4), (256);
我可以看到设置位:

select conv(val, 10, 2) from example;
+------------------+
| conv(val, 10, 2) |
+------------------+
| 1                | 
| 10               | 
| 11               | 
| 100              |
| 100000000        | 
+------------------+
我需要魔法,它会给我:

+------------------+
| (something)      |
+------------------+
| 1                | 
| 2                | 
| 1,2              | 
| 3                | 
| 9                | 
+------------------+

。。我也很高兴得到基于0的解决方案。

这里有一个初学者,也许。。。至少在T-SQL中,有一个位运算符可以用于将值与任何输入值组合。基本上规则是 如果 输入&bitvalue=bitvalue 然后,该位被打开

declare @i int
set @i =40
select @i & 1, @i & 2, @i & 4, @i & 8, @i & 16, @i & 32, 
       @i & 64, @i & 128, @i & 256
MySQL函数执行以下操作:

SELECT
    MAKE_SET( val, '1', '2', '3', '4', '5', '6', '7', '8', '9' )
FROM
    example

可能还有其他函数会生成一系列数字字符串。。。有人吗?

+1 MySQL也是,你知道,我在看MySQL集,希望实现不局限于表结构。谢谢你,这正是我需要的。
SELECT TRIM(TRAILING ',' FROM CONCAT(IF(x&1, "1,", ""), 
                                     IF(x&2, "2,", ""),
                                     IF(x&4, "3,", ""), ...))