[英]selecting distinct SET values as a single mysql column?
假设我有id(主键列)和val列(SET类型,带有一些允许的值):
set('a','b','c','d','e','f')
我需要顶部选择这些值作为列,第一列为id
+-----+------+
| id | val |
+-----+------+
| 102 | 'a' |
| 102 | 'e' |
| 102 | 'f' |
不确定如何实现。
select id, ???? from table where id = 102;
正如我在上面的评论中所提到的,您可能应该规范化数据,以使此问题完全消失。
但是,就现状而言,将需要与包含所有可能的SET
值的表SET
,而该值在记录的SET
; 您可以维护该表的永久副本,也可以使用UNION
子查询动态构建该表:
SELECT my_table.id, set_options.val
FROM my_table JOIN (
SELECT 'a' AS val
UNION ALL SELECT 'b' UNION ALL SELECT 'c' UNION ALL SELECT 'd'
UNION ALL SELECT 'e' UNION ALL SELECT 'f'
) AS set_options ON FIND_IN_SET(set_options.val, my_table.val) > 0
WHERE id = 102
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.