如果我有像这样的数据表
Option_id|Component_id|Option_parent|Option_name|Option_value
1 1 0 id
2 1 1 option1 Some value
3 1 1 option2 Other
4 1 0 id Value
5 1 4 option1 More
6 1 4 option2 More&More
提供要选择的“ option_name”和component_id时,是否可以返回以option_name作为列的行。使用“ id”的option_name将是其“ option_id”的父项。
So Select option1, option2 where Component_id = 1 returns
Option1 |Option2
Some Value Other
More More&More
我基本上是想看看我是否可以有一个通用表,组件可以用来存储不同数量的数据。我知道我可以使用联接,但想知道是否有更好的方法,因为一个组件可以有10个选项。
最佳答案
采用:
SELECT MAX(CASE WHEN t.option_name = 'option1' THEN t.option_value END) AS option1,
MAX(CASE WHEN t.option_name = 'option2' THEN t.option_value END) AS option2
FROM TABLE t
WHERE t.option_name IN ('option1', 'option2')
GROUP BY t.component_id, t.option_parent
关于sql - MySQL行到列,文本类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3586302/