[英]MySQL to select row with unique column value comparing with other columns
[英]MySQL select unique row entries of a column as columns in a new view or table
我有两难选择。 我正在使用CMS创建数据库表,其中记录的填充如下:
+------------+----------------+
| field_name | field_value |
+------------+----------------+
| your-name | Adam |
| your-email | adam@email.com |
| your-name | Ben |
| your-email | en@email.com |
+------------+----------------+
其中field_name和field_value是列名。 另外,“您的姓名”和“您的电子邮件”是网页中表单的输入名称。
(还有其他列,但它们都没有唯一的行条目)
我的问题是,如何创建表或视图,以便可以从上表中访问该表或视图?
+-----------+----------------+
| your-name | your-email |
+-----------+----------------+
| Adam | Adam@email.com |
| Ben | Ben@email.com |
+-----------+----------------+
我曾考虑过创建视图并加入它们,但似乎无法使其正常工作。
任何想法如何实现这一点?
谢谢!
表格中有ID吗? 如果有,可以使用以下方法:
SELECT
MAX(CASE WHEN field_name='your-name' THEN field_value END) your_name,
MAX(CASE WHEN field_name='your-email' THEN field_value END) your_email
FROM
yourtable
GROUP BY
id
请看这里的小提琴。
您的表1是否没有这样的id列(因此,(id,field_name)是该表的主键)?
+----+------------+----------------+
| id | field_name | field_value |
+----+------------+----------------+
| 1 | your-name | Adam |
| 1 | your-email | adam@email.com |
| 2 | your-name | Ben |
| 2 | your-email | en@email.com |
+----+------------+----------------+
那你可以做...
SELECT DISTINCT myTableAlias.id,
(SELECT field_value FROM table
WHERE id=myTableAlias.id AND field_name = 'your-name') your-name,
(SELECT field_value FROM table
WHERE id=myTableAlias.id AND field_name = 'your-email') your-email,
FROM table myTableAlias
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.