Product
テーブル:
id: int
name: varchar(255)
info: varchar(8000)
info
名前でグループ化されたすべての製品のリストを取得する必要があります。同じ名前の製品がある場合は、フィールドのデータが最も多い製品を選択して表示する必要があります。もう1つの要件は一貫性です。同じ製品が毎回表示されることが保証されている必要があります。しかし、これに関しては、パフォーマンスはまったく問題ではありません。
だから私がこれまでに思いついた最高のものはこれです:
select * from (select * from product order by length(info) desc) as product group by name
これはMySQLで機能するはずですが、結果を保証するものではないという私の理解。
より良い方法はありますか?
アップデート:
私が探しているものの例。データが
1, 'Product1', '12345'
2, 'Product1', '123'
3, 'Product2', '123456'
4, 'Product2', '123456'
5, 'Product2', '12'
期待される結果は次のいずれかになります。
1, 'Product1', '12345'
3, 'Product2', '123456'
また
1, 'Product1', '12345'
4, 'Product2', '123456'
クエリを実行するたびに同じ結果になる限り、2つのうちどちらを使用してもかまいません。