如何查询按相似性排序的记录?
例如.搜索"股票溢出"将返回
例如.搜索"LO"将返回:
LIKE 返回更好的结果,但对于长查询不返回任何内容,尽管存在类似的字符串
我想在MySQL中创建一个函数:
这是SQL代码:
CREATE FUNCTION F_Dist3D (x1 decimal, y1 decimal)
RETURNS decimal
DETERMINISTIC
BEGIN
DECLARE dist decimal;
SET dist = SQRT(x1 - y1);
RETURN dist;
END;
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
#1064 - You have an error in your SQL syntax;
check the manual that corresponds to your MySQL
server version for the right syntax to use near '' at line 10
Run Code Online (Sandbox Code Playgroud)
我在phpMyAdmin中运行此create语句.这个功能有什么问题?
我看到越来越多的用户在我的网站上注册,只是为了向其他用户发送重复的垃圾邮件消息。我添加了一些服务器端代码来使用以下 mysql 查询检测重复消息:
SELECT count(content) as msgs_sent
FROM messages
WHERE sender_id = '.$sender_id.'
GROUP BY content having count(content) > 10
Run Code Online (Sandbox Code Playgroud)
查询运行良好,但现在他们通过更改消息中的一些字符来解决这个问题。有没有办法用 MySQL 检测到这一点,或者我是否需要查看从 MySQL 返回的每个分组,然后使用 PHP 来确定相似度的百分比?
有什么想法或建议吗?