mysql - 选择匹配最多的字符

时间:2012-08-04 15:22:21

标签: mysql select strip chop

我不知道调用了什么函数但是我试图选择匹配/具有最多输出字符的行。这是我尝试过的。

select * from table where title like '%alotofcharactershere%' limit 1

以上仅适用于:alotofcharactershere

的整个单词

我真正想要的是将它分解:只需要找到一个符合最多匹配字符的行。

如果你知道我在说什么,请帮忙。提前谢谢。

2 个答案:

答案 0 :(得分:1)

我一直在挖掘,而且我不是SQL专家,但在更换不匹配的字符后,我正在考虑按字符排序的行。

像: SELECT * FROM your_table ORDER BY LENGTH(REGEXP_REPLACE(title, '[^abcdefg]', ''));

但是,有两个问题。它与找到的最不同的字符不匹配。所以aaaa的价值高于abc。而且我认为你的意思是你希望abc具有更高的价值。 第二个问题可能是最大的,mySQL不支持这个正则表达式。而且不确定是什么。但我确实找到了这篇文章:https://launchpad.net/mysql-udf-regexp

虽然我认为必须有更简单的东西和实际上开箱即用的东西,但这个答案可能只会让某些人想到开箱即用。

也可能有很多连接的解决方案,但这很可能比选择所有内容并在php(或类似)中对其进行排序

答案 1 :(得分:1)

目前尚不清楚你想要完成什么,所以我想知道你是否已经研究过Full Text Searches。找到 相关性 的能力可能会为您提供一些想法或替代方案。