php - 这怎么能在mysql中完成?

标签 php mysql sql

CREATE TABLE Table1
    (`id` int, `group_id` int, `data_id` int, `value` varchar(19))
;

INSERT INTO Table1
    (`id`, `group_id`, `data_id`, `value`)
VALUES
    (1, 20, 15, 'Supplier'),
    (2, 20, 1, 'Rahul'),
    (3, 20, 2, 'Sharma'),
    (4, 20, 3, '05/08/90'),
    (5, 20, 4, 'india'),
    (6, 21, 15, 'Consumer'),
    (7, 21, 1, 'Rajesh'),
    (8, 21, 2, 'Sharma'),
    (9, 21, 3, '05/08/88'),
    (10, 21, 4, 'india')
;

现在创建了一个表,我必须按供应商或消费者对值列中的数据进行排序,就像这样: 对于消费者:

f-name l-name    dob     location
-----------------------------------
Rajesh Sharma 05/08/88   india
and so on .... 

对于供应商

f-name l-name    dob     location
-----------------------------------
Rahul Sharma 05/08/90   india

最佳答案

首先,您需要从您拥有的实体-属性-值存储中创建记录。您可以通过多种方式执行此操作。下面是一个使用 group by 的方法:

select max(case when data_id = 1 then value end) as fname,
       max(case when data_id = 2 then value end) as lname,
       max(case when data_id = 3 then value end) as dob,
       max(case when data_id = 4 then value end) as location 
from table1
group by group_id
having max(case when data_id = 15 then value end) = 'Consumer';

having 子句进行过滤,但您也可以添加一个指定记录类型的列。

关于php - 这怎么能在mysql中完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24803620/

相关文章:

php - 如何显示未找到的记录php

php - 在sql中选择多个对象并查看是否至少有1个具有不同的值?

sql - 创建查询以在 "join"表中查找匹配对象

javascript - Ajax 简单调用不起作用

php - 使用不带 .htaccess 的 PHP 创建 SEO 永久链接

php - 使用 PHP+MySQL 显示带有子类别和 n-sub 类别的类别

sql - 从表中的重复行和不同行中选择状态明智的行

mysql - 按组对 "rollup"进行排序

php - 使用 Glob() 时如何删除文件路径?

php - utf8 vs. utf-8 vs. UTF8 vs. UTF-8 有什么区别吗?