【问题标题】:Create hamming distance function in mysql without super privilege在没有超级权限的mysql中创建汉明距离函数
【发布时间】:2012-12-17 12:23:35
【问题描述】:

我想在我的 MySQL 数据库中使用汉明距离(通过 phpMyAdmin 使用),但没有成功创建函数并使用给定的代码here

我指的是这段代码:

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 // 之间(它适用于 Levenshtein 距离函数,见下文),但也没有解决问题 - 我得到了一个超时:

/usr/share/phpmyadmin/libraries/import/sql.php 第 132 行的最大执行时间超过 300 秒

无论如何,我对 MySQL 还是很陌生,所以我想知道是否有人可以帮助我以其他方式在 MySQL 中创建汉明函数。

顺便说一句,我也在使用Levenshtein distance function,这个函数的创建工作正常。然而,我发现应该使用 Levenshtein 距离来计算两个字符串之间的距离,而应该使用汉明距离来计算数值数据。

谢谢。

【问题讨论】:

  • 您提供的代码链接指向包含多项代码的 SO 条目。请将您要在此问题中定义的函数的代码。这样我们其他人就可以尝试一下,也许想办法提供帮助。

标签: mysql levenshtein-distance hamming-distance binary-log


【解决方案1】:

您需要CREATE ROUTINE 权限。

【讨论】:

    猜你喜欢
    • 2012-11-18
    • 2017-05-09
    • 2017-09-10
    • 1970-01-01
    • 1970-01-01
    • 2015-09-06
    • 2014-08-09
    • 2015-03-21
    • 2012-03-10
    相关资源
    最近更新 更多