php - PHP 数据库查询中的分组项目

标签 php mysql

我认为这是一个相当简单的问题,尽管解释起来有点困难。

让我们从州标志列表开始 - 州旗、花、鸟等。我的 MySQL 数据库中的行将每个符号与其页面出现的 URL 相匹配。因此,如果字段 Designation = 'flower',则 URL 将是 arizona/flower、new-york/flower 或类似的内容。

但是,有些州在不同类别中有多个符号;例如两只州鸟,三朵州花等。更令人困惑的是,我还没有弄清楚是否应该在一页上描述一个州的所有花卉符号,或者为每个花卉符号制作一个独特的页面。

目前,我正在见机行事,如以下数据库数据所示。在此示例中,亚利桑那州有两个花卉符号,每个符号都在同一页面上讨论 (URL = arizona/flower)。

+----------+-----------------+-------------+
| State-ID | URL             | Designation |
+----------+-----------------+-------------+
| us-az    | arizona/flower  | flower      |
| us-az    | arizona/flower  | flower      |
| us-az    | arizona/tree    | tree        |
| us-fl    | florida/mammal  | mammal      |
| us-fl    | florida/mammal2 | mammal      |
| us-fl    | florida/mammal2 | mammal      |
| us-fl    | florida/mammal3 | mammal      |
| us-fl    | florida/bird    | bird        |
| us-fl    | florida/bird2   | bird        |
+----------+-----------------+-------------+

但是,佛罗里达州有四种官方哺乳动物。第一个(佛罗里达豹)在 mysite/florida/mammal 上进行了讨论。这两种海洋哺乳动物在 mysite/florida/mammal2 上进行了讨论,而州马则在 @ mysite/florida/mammal3 上进行了介绍。

所以这是我的问题:我如何编写一个查询,1)区分单个名称(例如亚利桑那州的州树)和多个名称(例如亚利桑那州的州花),2)还告诉我多个名称是否链接到一个单个 URL 还是多个 URL?

我需要一段时间才能解决所有问题,但是,就目前而言,如果我有一个仅列出多个 URL 的查询,这将非常有帮助。例如,它甚至不会显示亚利桑那州的州树。该查询可以作为符号列表的快照,帮助我识别所有多个名称以及它们中的哪些链接到单个 URL,哪些链接到多个 URL。

我正在 Mac 上使用 PHP 和 MySQL。

附注我应该指出,还有其他字段,包括为符号赋予特定值的字段(例如“佛罗里达豹”、“海牛”、“海豚”、“ cookies 马”)。

最佳答案

SELECT `State-ID`, Designation, COUNT(*) all_count, COUNT(DISTINCT URL) url_count
FROM YourTable
GROUP BY `State-ID`, Designation

url_count 将告诉您它们是否链接到相同的网址或不同的网址。您可以添加 HAVING url_count > 1 将结果限制为仅链接到多个 URL 的项目。

关于php - PHP 数据库查询中的分组项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23819543/

相关文章:

php - 谷歌地图编码折线 PHP 函数

mysql - 在不同 MySQL 服务器之间复制表数据

mysql - ON DELETE CASCADE 有问题吗?

php - count() 具有一对多关系和 WHERE IN 的分页

php - 比较具有相同列的两个表的相似值

php - 我可以更改 json_encode 的默认选项吗

php - 数据库列内的静态值

php - 我想得到在 php 表单中填写的两个时间戳之间的差异

mysql - 由于待处理的迁移错误,本地主机启动失败

php - 一种在 PHP 中编写大型 elseif 语句的简单方法