MySQL データベース (phpMyAdmin で使用) でハミング距離を使用したいのですが、ここで指定されたコードで関数を作成できませんでした。
私はこのコードを参照しています:
CREATE FUNCTION HAMMINGDISTANCE(
A0 BIGINT, A1 BIGINT, A2 BIGINT, A3 BIGINT,
B0 BIGINT, B1 BIGINT, B2 BIGINT, B3 BIGINT
)
RETURNS INT DETERMINISTIC
RETURN
BIT_COUNT(A0 ^ B0) +
BIT_COUNT(A1 ^ B1) +
BIT_COUNT(A2 ^ B2) +
BIT_COUNT(A3 ^ B3);
問題は、私が「超特権」を持っていないことです。また、このコードを間に入れてみDELIMITER //
ました(レーベンシュタイン距離関数で機能しました。以下を参照)が、それでも問題は解決しませんでした-タイムアウトが発生します:
/usr/share/phpmyadmin/libraries/import/sql.php
132行目で最大実行時間の300秒を超えました
とにかく、私はMySQLにまったく慣れていないので、誰かがMySQLでハミング関数を作成するのを手伝ってくれるかどうか疑問に思っています。
ところで、私はレーベンシュタイン距離関数も使用しており、この関数の作成はうまくいきました。しかし、2 つの文字列間の距離と数値データのハミング距離の計算には、むしろレーベンシュタイン距離を使用する必要があることがわかりました。
ありがとう。