加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

分组MySQL数据

发布时间:2020-12-11 23:41:41 所属栏目:MySql教程 来源:网络整理
导读:我有这个表,我们称之为表一. +----+---------+-----------------+| id | link_id | url |+----+---------+-----------------+| 1 | 1 | www.example.com || 2 | 1 | www.abc.com || 3 | 1 | www.test.com || 4 | 1 | www.t1.com || 5 | 1 | www.newtest.com

我有这个表,我们称之为表一.

+----+---------+-----------------+
| id | link_id | url             |
+----+---------+-----------------+
|  1 |       1 | www.example.com |
|  2 |       1 | www.abc.com     |
|  3 |       1 | www.test.com    |
|  4 |       1 | www.t1.com      |
|  5 |       1 | www.newtest.com |
|  6 |       1 | www.testing.com |
|  7 |       1 | www.abc.com     |
|  8 |       1 | www.example.com |
|  9 |       1 | www.web1.com    |
| 10 |       1 | www.web2.com    |
| 11 |       2 | www.dear.com    |
| 12 |       2 | www.google.com  |
| 13 |       2 | www.flowers.com |
| 14 |       2 | www.yahoo.com   |
| 15 |       2 | www.abc.com     |
| 16 |       2 | www.dell.com    |
| 17 |       2 | www.web.com     |
| 18 |       2 | www.example.com |
| 19 |       2 | www.test.com    |
| 20 |       2 | www.abc.com     |
+----+---------+-----------------+
20 rows in set (0.00 sec)

link_id是表中的主要标识符.它告诉我哪些网址出现在链接1,链接2等.

我想要的是:
?1.获取所有唯一的URL,
?2.显示URL所属的链接

因此,示例输出将是:

+-----------------+---------+
| url             | link_id |
+-----------------+---------+
| www.example.com |       1 |
| www.example.com |       2 |
| www.abc.com     |       1 |
| www.abc.com     |       2 |
| www.test.com    |       1 |
| www.test.com    |       2 |
| www.t1.com      |       1 |
| www.newtest.com |       1 |
| www.testing.com |       1 |
| www.web1.com    |       1 |

…等等.

因此,您可以看到www.example.com出现两次,因为它与链接1和2相关联,但web1.com只出现一次,因为它只属于链接1.

我已经尝试了几个不同的小组,但我最终只是更多地摸不着头脑.

任何帮助表示赞赏.如果有人需要,这是表转储:

CREATE TABLE IF NOT EXISTS `table1` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,`link_id` tinyint(3) unsigned DEFAULT NULL,`url` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=21 ;

INSERT INTO `table1` (`id`,`link_id`,`url`) VALUES
(1,1,'www.example.com'),(2,'www.abc.com'),(3,'www.test.com'),(4,'www.t1.com'),(5,'www.newtest.com'),(6,'www.testing.com'),(7,(8,(9,'www.web1.com'),(10,'www.web2.com'),(11,2,'www.dear.com'),(12,'www.google.com'),(13,'www.flowers.com'),(14,'www.yahoo.com'),(15,(16,'www.dell.com'),(17,'www.web.com'),(18,(19,(20,'www.abc.com');
最佳答案
SELECT url,GROUP_CONCAT(link_id) 
  FROM table1 
 GROUP 
    BY url;

这将为您提供所有不同的URL,每个URL都有一个链接ID列表

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读