我不是 MySQL 专家,但我很好地解决了基本问题。感谢您的反馈意见。
我有两张桌子user
和favorite
. 每个用户可以有多个独特的收藏夹。
表用户 u
[ user_id + name ]
100 | Sally
表最喜欢的最爱
[ fav_id + user_id + fav_key + fav_val ]
1 | 100 | icecream | mint
2 | 100 | candybar | snickers
3 | 100 | color | red
我想创建一个SELECT
语句,该语句将使用该fav_key
值作为列标题将用户的收藏夹转换为列。*问题是我永远不会知道fav_val
用户输入的值是什么,因此必须动态生成列名。
选择 ...
[ user_id + name + fav_icecream + fav_candybar + fav_color ]
100 | Sally | mint | snickers | red
考虑到一些遥远的性能 - 问题之一是我不想运行两个SELECT
语句来获取用户数据和用户收藏(另外我喜欢以这种方式动态命名列的想法) .
更新
所以这就是所谓的,旋转的,优秀的。
如果我不知道这些值是什么怎么办?我需要从收藏夹的查询中动态生成列。