2 つの DNA のような文字列を MySQL と比較する方法を見つけようとしていますが、ストアド関数は問題ありません。文字列も変更される可能性がありますが、次の形式にする必要があります: [code][id]-[value]
like C1-4
. (-も変更される可能性があります)
文字列の例:
C1-4,C2-5,C3-9,S5-2,S8-3,L2-4
値が他の文字列に存在しない場合、たとえばS3-1
、スコアは 10 (最大値) になります。質問された文字列がC1-4
であり、指定された文字列がである場合C1-5
、スコアは である必要が4 - 5 = -1
あり、質問された文字列がC1-4
であり、指定された文字列が である場合C1-2
、スコアは である必要があります4 - 2 = 2
。
これの理由は、リアルタイム アルゴリズムが 10.000 の結果で遅くなっているためです。(保存された関数、インデックス、クエリの最適化で既に最適化されています) 10.000 x 小さくて高速なクエリは多くのことを行うためです。そして、クエリを注文して適切な制限を取得する前に、スコアを計算する必要があります。
ご不明な点がございましたら、コメントでお知らせください。
** 編集 **
文字列ではなく、DNAビットを1-n関係テーブルとして格納したテーブルを使用することも可能だと考えています。
ID | CODE | ID | VALUE
----------------------
1. | C... | 2. | 4....