-3

MYSQL クエリでマスター検索用の単純な正規表現を作成しようとしています。

値にスペースが含まれていて、検索値に含まれていない場合でも、一致を返すだけです。

例えば

ユーザーが「JoeBlogs」と入力し、これをクライアントのフルネームと照合しようとすると、joe と blogs の間にスペースがあってもクライアントが返されることを望みます。ジョーのブログ

これは非常に高価になる可能性があることがわかっているため、where句でREPLACEを使用したくありませんでした。

現在、そのように完全に一致するものを探しています。

WHERE client_name RLIKE '^joeblogs'

これは正規表現では非常に簡単だと思いますが、正規表現の学習にはまだ慣れていません

ありがとうございました

4

1 に答える 1

0
REGEXP 'Joe ?Briggs'

疑問符は、その前の文字がオプションであることを示しています。

「アンカー」が必要な場合:

REGEXP '^Joe ?Briggs$'

名前の前後に何も存在できなくなりました。つまり、「Joe Briggsworth」は一致しません。

文字列の途中単語の境界で名前を見つけるには:

REGEXP '[[:<:]]Joe ?Briggs[[:>:]]'
于 2018-03-21T02:06:21.310 に答える