1

これについて世間の意見はどうなのか気になります……。

名前 (会社名など) のリストがあり、Web ページにリストとして表示したいと考えています。ユーザーが名前のグループをアルファベット順に検索できるようにしたいと考えています。「M」をクリックすると、文字 M で始まる会社名が表示されます。これは簡単ですね。

ただし、ここに問題があります。「M」カテゴリに含まれるはずのすべての企業名が、ミシガン大学などの文字 M で始まるわけではありません。だから使って

SELECT * WHERE Name LIKE 'M%'

SQL クエリでは、ここでは機能しません。

このようにデータを分類するための最良の方法は何でしょうか?

考えられる唯一の方法は、会社名テーブルに列を追加し、後で SELECT ステートメントで使用できるように、各会社名に手動でアルファベットを割り当てることです。これは非常に退屈で初歩的なことのように思えますが、このタスクを解決するためのより良い方法があることを願っています。Web ページにデータを表示するためのバックエンド ソフトウェアとして ColdFusion を使用していることに疑問を持っている人がいるかもしれません。

私を助けてくれてありがとう:)

4

3 に答える 3

2

各会社名に 1 つのカテゴリがあり、そのカテゴリが何であるかを推測する必要がある場合は、別の列を作成するのが適切な方法です。

会社名が複数のリストに表示される「十分な」推測が必要な場合は、名前の任意の単語の最初の文字のカテゴリに入れることができます。

select *
from t
where ' '+name like ' M%'

その後、いくつかの単語を削除することで気を紛らわすことができますが、これには複数の置換が必要です。

where ' '+replace(replace(replace(name, ' of', ''), 'University', ''), ' the', '') like ' M%'

ただし、これは長期間の使用には少しアドホックです。そして、「The Office Group」のようなものを台無しにする可能性があります.

于 2013-07-06T21:36:17.163 に答える
2

これらが会社名であることを考慮すると、大文字が名前の先頭にあるか、説明の途中に空白が追加されていることに依存できます。

SELECT * WHERE Name LIKE 'M%' OR Name LIKE '% M%';

このようにして、「University of Michigan」は U と M の文字の下にリストされ (これがあると便利だと思います)、「McDonald」または「University of McDonald」も同様に表示されますが、「D」の下には表示されません。この文字の前にスペースはありません。

于 2013-07-06T23:32:25.867 に答える
1

任意の「文字カテゴリ」に任意の名前を入れることができるようにしたい場合は、列を追加することが唯一のオプションです。名前をどの文字カテゴリでソートする必要があるかを決定する一連の特定の規則を定義できる場合は、CF (または JS) でソート関数を作成できます。

于 2013-07-07T03:13:44.117 に答える