比较不同数据库行之间的值并获得最大计数

时间:2011-12-21 07:38:08

标签: php mysql

我有一个表,其中一行包含以下数据。所以我需要比较他们之间的数据,并显示哪些数据有最大数量。例如。我的桌子有以下水果名称。所以我需要比较这些水果,并首先显示最大果实数。

s.no |             field1             |
1    |apple,orange,pineapple          |
2    |apple,pineapple,strawberry,grapes|
3    |apple,grapes,                   |
4    |orange,mango                    |

即苹果第一,葡萄第二,菠萝第三等。并且这些数据是动态输入的,因此无论动态输入什么值,都需要在它们之间进行比较并获得最大计数

3 个答案:

答案 0 :(得分:2)

很棒的问题。

这是没有数据标准化的经典不良结果。

我建议您阅读有关Database Normalization的内容,规范化您的表格,然后看看使用简单的SQL查询执行此操作是多么容易

答案 1 :(得分:1)

如果您需要在列字段1上运行查询,那么为什么不考虑normalization?否则它将来可能会变得复杂和肮脏。

您当前的表格如下所示(仅限序列号1),Pk可以是自动增量主键。

Pk | s.no    |fruitId|
1  |   1     |1     |
2  |   1     |2     |
3  |   1     |3     |

你的新水果表

PK    |fruitName  |
1     |Apple      |
2     |Orange     |
3     |Pineapple  |

这也可以帮助您避免冗余。

答案 2 :(得分:0)

快速解决方案是计算插入/更新行的水果数量并添加fruitCount列。然后,您可以使用此列按顺序排序。

Zohaib必须纠正解决方案 - 如果您有时间和可能进行此类更改。我绝对建议你阅读都铎的链接!