「mens health」という検索文字列があり、データベースに「men's health」の値を持つフィールドがあるとします。正規表現を使用して検索文字列と一致させるにはどうすればよいですか?これは単なる一例であり、私のデータベースには、 "/、$、 '、 - 、(、)、1,2などの非アルファベット文字を含むレコードが多数あります。検索文字列はURLから取得され、読みやすいようにエンコーディングを含むべきではありません。フィールド内の任意の特殊文字を入力するMysqlフィールドの文字列を検索するにはどうすればよいですか?
2
A
答えて
0
文字間の特殊文字にかかわらずアルファベット文字のシーケンスと一致するはずのMySQLクエリでRLIKEで使用した正規表現文字列を生成する小さな関数を作成しました。
function GenerateCategoryRegex($SrchTerm) {
$arrChar = str_split(str_replace(' ', '', $SrchTerm));
$RegEx = '(^|;)+[[:space:]]*';
foreach($arrChar as $Char) {
$RegEx .= $Char . '{1}[^\w,]*';
}
$RegEx .= '[[:space:]]*(;|$)+';
return $RegEx;
}
0
「検索可能なテキスト」(「メンズヘルス」など)を含む別の列を追加します。次にを検索しての列を表示しますが、元の列(「平均の健康状態」)を表示します。
検索キーワードに類義語、よくあるスペルミスなどを追加するなど、自由に変更できます。
そして、あなたのREGEXP
でもおそらく速いFULLTEXT
シンプルLIKE
、またはになることができます。
関連する問題
- 1. mysqlの全文検索で特殊文字を検索する
- 2. 特殊文字の入力フィールド
- 3. 文字列の文字を含むフィールドをmysqlデータベースで検索する方法
- 4. Preg_match文字列内の特殊文字を検証する
- 5. DB内の特殊文字( ')でレコードを検索するには
- 6. 文字列内の特殊パターンを検索する:R
- 7. lldbのプロセスメモリ内の特定の文字列を検索するにはどうすればよいですか?
- 8. 文字列内の文字列を文字列内で渡すにはどうすればよいですか?
- 9. 文字と特定の任意の文字を検索する正規表現
- 10. 文字列内の特定の文字列を削除するにはどうすればよいですか?
- 11. viで文字列を特殊文字に置き換えるにはどうすればよいですか?
- 12. MySQLフィールドで文字列を検索する
- 13. 入力フィールドから文字列値を取得するにはどうすればよいですか?
- 14. Pythonの:特殊文字の文字列を検索する私のpythonコードで
- 15. 入力フィールドに特殊文字を許可しない
- 16. Java - 文字列のアルファベット以外の文字を検索するにはどうすればよいですか?
- 17. 特定の検索フィールドを大文字にする方法は?
- 18. スキャン文字列に特殊文字を含めるにはどうすればよいですか?
- 19. Mongodb - 複数のフィールドで文字列を検索するには?
- 20. MongoDB文書で特殊文字を含む文字列を検索する
- 21. jQuery:html文字列を任意の回数挿入するにはどうすればよいですか?
- 22. 文字列の繰り返し文字を検索するにはどうすればよいですか?
- 23. 文字列内の文字、数字、特殊文字を確認するにはどうすればよいですか?
- 24. 数字フィールドまたは特殊文字のみを含む入力フィールドをチェックする方法
- 25. 文字列を入力し、文字列が配列内の任意の文字列と一致するかどうかを確認する(JAVA)
- 26. sweet.jsの出力に任意の文字列を挿入する
- 27. SQLデータベースの検索列で特殊文字を無視する
- 28. 配列内の各メモリブロック内に文字列を入力するにはどうすればよいですか?
- 29. 文字列内の\文字を/文字に変更するにはどうすればよいですか?
- 30. ソル文字列フィールドを10文字に切り詰めるにはどうすればよいですか?
完全一致に '='を使用するだけではどうですか? –
MySQLには「正規表現の代入」はありません。私は文字列の墨塗りバージョンを出力するMySQL関数を記述することでこの問題を解決しました。この関数は文字列を文字単位でステップ実行し、結果を作成します。 –
@JoshGreiferのソリューションと同じように、データベースのフィールドのサニタイズされたコピーを保存していましたが、私の場合はbbmlのような構文と引用がぎりぎりです。誰かが検索するたびに問題になるとわかっていたので、私はそのルートに行った。それはSQL Serverデータベースでしたが、それは無関係です。 –