SQL Server 2005を使用しています。指定されたパラメーターと同じ文字列を持つ、テーブルからすべての行を選択する必要があります。
SELECT * FROM mytable WHERE title LIKE @param;
唯一の問題は、タイトル列に、比較対象の@paramですでに「-」に置き換えられている特殊文字が含まれている可能性があることです。
[az] [AZ] [0-9] [-]以外の@paramの文字はすべて「-」に置き換えられたため、これを元に戻す方法はありません。(値はSEOに適したURLから取得されます)
可能なタイトル値の例とそれらがどのように見えるべきか:
"Adobe Acrobat" -> "Adobe-Acrobat"
"A+® Certification" -> "A-Certification"
文字のホワイトリストメカニズムが必要なため、SQL REPLACE()関数を使用できません。タイトル列に、予測できない非常に特殊な文字が含まれている可能性があります。
これには正規表現が最適です。
2日間検索しましたが、T-SQLに実装するための簡単で効率的な方法を見つけることができませんでした。
すべての行を取得してクライアントコードでフィルタリングを行うことはできましたが、それは私にとってあまり良い解決策ではないようです。
助言がありますか?