我认为这是一个相当简单的问题,尽管解释起来有点困难。
让我们从州标志列表开始 - 州旗、花、鸟等。我的 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/