the*_*man 8 mysql select strip chop
我不知道这个函数调用了什么,但是我试图选择一个匹配/具有最多输出字符的行.这是我尝试过的.
select * from table where title like '%alotofcharactershere%' limit 1
Run Code Online (Sandbox Code Playgroud)
以上仅适用于:alotofcharactershere的整个单词
我真正想要的是将它分解:alotofcharactershere并找到一个具有最匹配字符的行.
如果你知道我在说什么,请帮忙.先感谢您.
我一直在挖掘,我不是 SQL 专家,但我在考虑替换不匹配的字符后按字符长度排序的行。
就像是:
SELECT * FROM your_table ORDER BY LENGTH(REGEXP_REPLACE(title, '[^abcdefg]', ''));
不过有2个问题。它与找到的最不同的字符不匹配。所以 aaaa 的价值会比 abc 更高。我认为你的意思是你希望 abc 具有更高的价值。第二个问题可能是最大的,mySQL 不支持这个正则表达式。并且不确定有什么。但我确实找到了这篇文章:https ://launchpad.net/mysql-udf-regexp
尽管我认为一定有一些更简单的东西,并且确实可以开箱即用,但这个答案可能只会触发某人的思维,跳出框框思考。
也可能有一个包含大量连接的解决方案,但这很可能比选择所有内容并在 php(或类似的)中对其进行排序要慢