SQL Server に単純なテーブルがあります (2008 R2 を使用しています)。
Sites ( SiteId, Name )
次のデータがあるとします。
-----------------------------------------
- SiteId - Name -
-----------------------------------------
- 1 - Foo Bar Baz -
- 2 - Qux Tar -
- 3 - Contoso -
-----------------------------------------
ユーザーが " baz foo
" を検索できるようにして、行 1 を返すようにしたいと考えています。SQL Server で入力文字列を分割し、列の値がすべての条件に一致する行のみを返すようにしたいと考えています。
論理的には、これは次のようになります。
function Search(query) {
query = query.Split(" ");
sql = "SELECT ..."
foreach(term in query) {
sql += "WHERE Name LIKE " + term + " AND ";
}
executeSql( sql );
}
T-SQL が配列の操作を非常に困難にしていることは理解していますが、トークン化/用語の一致を実行する組み込みの構成要素が必ずあるはずです。