内容简介:翻译自:https://stackoverflow.com/questions/11809732/mysql-select-match-the-most-characters
我不知道调用了什么函数,但我试图选择匹配/具有最多输出字符的行.这是我尝试过的.
select * from table where title like '%alotofcharactershere%' limit 1
以上仅适用于:alotofcharactershere的整个单词
我真正想要的是它要分解它:找到一个具有最匹配字符的行.
如果你知道我在说什么,请帮忙.先感谢您.
我一直在挖掘,我不是一个 SQL 专家,但我在考虑更换不匹配的字符后,按字符排序.
就像是:
SELECT * FROM your_table ORDER BY LENGTH(REGEXP_REPLACE(title,'[^ abcdefg]’,”));
但是有两个问题.它与找到的最不同的字符不匹配.所以aaaa的价值高于abc.而且我认为你的意思是你希望abc具有更高的价值.
第二个问题可能是最大的,mySQL不支持这个正则表达式.而且不确定是什么.但我确实找到了这篇文章: https://launchpad.net/mysql-udf-regexp
虽然我认为必须有一些更简单的东西和实际上开箱即用的东西,但这个答案可能只会引发某些人开心思考.
也可能有一个有很多连接的解决方案,但这很可能比选择所有内容并在php(或类似)中对它进行 排序 更慢
翻译自:https://stackoverflow.com/questions/11809732/mysql-select-match-the-most-characters
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 算法之「字符串匹配算法」
- 字符串模式匹配趣味算法
- 字符串匹配算法:Sunday算法
- 字符串匹配算法(多模式串)
- 通用高效字符串匹配:Sunday 算法
- 字符串匹配算法介绍及js字符串indexOf源码探究
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。