gpt4 book ai didi

php - 在 mysql 中按特定字数排序

转载 作者:行者123 更新时间:2023-11-29 05:16:31 25 4
gpt4 key购买 nike

我需要使用 mysql 根据单词的重复次数对结果进行排序。

这是我的示例表

id   Name    keywords      Description
1 John John, USA John is good boy. John, John
2 Alex Alex, John Alex is a friend of john.
3 Rocky John Rocky
4 John John,John John, John, John, John, John

将以“约翰”为例。第一行“John”重复了 5 次,第二行重复了 2 次,第三行重复了 1 次,第四行重复了 8 次。我需要根据计数降序显示结果。

   Select * From table Where name like '%John%' OR keywords like '%John%' OR Description like '%John%'

所以会按照下面的顺序显示

 id   Name    keywords      Description
4 John John,John John, John, John, John, John
1 John John, USA John is good boy. John, John
2 Alex Alex, John Alex is a friend of john.
3 Rocky John Rocky

最佳答案

这样就可以了:

SELECT id,Name,keywords,Description,    
ROUND (
(
LENGTH(CONCAT(Name,keywords,Description))
-LENGTH(REPLACE( CONCAT(Name,keywords,Description), "John", "") )
) / LENGTH("John")
) AS count
FROM tbl ORDER BY `count` desc

请看这里:Demo

更新

如果你想在每条记录中查找多个(不同的)词,你您应该使用像

这样的用户定义函数 (UDF)
CREATE function wcnt(wrd varchar(32), str varchar(1000)) returns int
RETURN ROUND ((LENGTH(CONCAT(str))-LENGTH(REPLACE( CONCAT(str),wrd,"")))/LENGTH(wrd));

请看这里:function-demo

或在这里获取 combination of the first query with the UDF

关于php - 在 mysql 中按特定字数排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32064559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com