ホームページ  >  に質問  >  本文

Pythonを使用して文字列と追加部分を一致させるが、追加部分が異なる場合は一致しない方法

文字列と追加部分が一致するが、追加部分が異なる場合は一致しないようにするにはどうすればよいですか? たとえば、名前のリストがあり、それらをデータベース内の名前と照合する必要がある場合:

リーリー

最初に完全一致を試みましたが、何も見つからなかった場合は、外部名文字列の末尾から文字を削除し続け、データベースと一致するレコードが 1 つだけになるまで再度一致を試みます。

この手法は上の表の 1 番目と 3 番目の例と一致しますが、問題は 2 番目の例とも一致することです。プログラムはマシュー語全体が削除されるまで毎回 1 文字を削除し、その後、この場合、これは誤った一致です。

完全一致のみを実行できる、または一致するが片側の名前の追加部分のみがあり、両方に名前の 2 つの異なる部分がある場合は一致しないという提案。

SQL または Python を使用してこの問題を解決できます。

ご協力いただきありがとうございます。

P粉676588738P粉676588738395日前676

全員に返信(1)返信します

  • P粉145543872

    P粉1455438722023-09-21 11:25:47

    これは非常に非効率的であり、テーブル全体のスキャンが必要になります。

    リーリー

    ORDER BY 句の最初の式は最初に完全一致を基準に並べ替え、次に 2 番目の式は検索文字列全体で始まる name を基準に並べ替えます。 name で始まる検索文字列。

    もちろん、SET @name_str = '...'; を使用する代わりに、検索文字列をパラメータとして直接渡すこともできます。

    db<>fiddle の例をいくつか示します。

    返事
    0
  • キャンセル返事