テキストフィールドに近いものを見つける方法はありますか? [email protected]
を検索すると[email protected]
と表示されますか?MySQL - 近くの一致を見つける
だから、基本的にユーザーがthier自身のメールアドレスを探している、そしてそれは、もともと間違ってデータベースに入力された場合、それは少し
テキストフィールドに近いものを見つける方法はありますか? [email protected]
を検索すると[email protected]
と表示されますか?MySQL - 近くの一致を見つける
だから、基本的にユーザーがthier自身のメールアドレスを探している、そしてそれは、もともと間違ってデータベースに入力された場合、それは少し
このような問題をパターンマッチングで解決するのは首の痛みです。
2つの文字列間の距離は、1つの文字列をもう1つの文字列に変換するために必要な操作の最小数です。操作は、1文字の挿入、削除または置換です。
thisをチェックしてください。
これは*完璧な、ありがとう! – BenOfTheNorth
私にもニュース。私はこれが完璧だと感じますが、長い電子メールアドレスでは非常に遅くなります。うまくいけば、これは何度も実行される必要はありません。 –
ちょうどそれをテストし、それは素晴らしい動作しています。これは、ユーザーがメールを受信していないときに手動でメールを再送信する場合にのみ使用されるため、ほとんど実行されません。 – BenOfTheNorth
オフいくつかのpattern matchingで起動してみてくださいされた場合、それは潜在的な試合を投げます。
SQLのパターンマッチングでは、(ゼロ文字を含む)の文字 の任意の数を一致させるために、任意の単一 の文字と「%」と一致するために「_」を使用することができます。 MySQLでは、SQLパターンはデフォルトで で大文字と小文字を区別しません。いくつかの例をここに示します。 SQLパターンを使用するときは、 use =または<>しないでください。代わりにLIKEまたはNOT LIKE比較演算子 を使用してください。
これの問題は、私が好きなように使用すると、それはあまりにも緩やかになり、正規表現を使用する場合、それはあまりにもタイトになります。私はルールセットの必要なしに、何かを見つける一般的な何かが必要です – BenOfTheNorth
正規表現は、あなたがそれが欲しいと思ったように特定の、または一般的にすることができます。 'LIKE'キーワードは、途中に欠けている文字や文字の集合を見つけることができます。何かもっと必要なら、正規表現に行きましょう。正規表現の文字列が間違っているだけかもしれません。 –
私はまだ何も使用していない、私はthatsすべてを仮定していた。 @で電子メールアドレスを分割して、前半と後半に別々に行う場合は、 – BenOfTheNorth
近くの一致が意味することによって異なります。 – liquorvicar
@liquorvicarはい。とにかく、googleのようなものはありません:....... :) –
@MostyMostachoええ、もし私たちだけがGのアルゴリズムを持っていれば...とにかくあなたのlevenshteinリンク+1。それはMySQLで実装されていたかわからなかった – liquorvicar