mysql 按相似度来排序

php中文网
发布: 2016-06-06 20:45:44
原创
1642人浏览过

数据库tag字段内容格式:a,b,c,d ...
假设有这几条记录
1:刘世允
2:郑胜浩
3:申东烨
4: 申东烨,郑胜浩,刘世允,安英美
5: 郑胜浩,刘世允,安英美
6: 申东烨,郑胜浩
7:刘世允,安英美

给出的查询tag
$tag = '申东烨,郑胜浩,刘世允,安英美,李尚勋';
按照相同词的个数排序

查询的结果
1: 申东烨,郑胜浩,刘世允,安英美
2: 郑胜浩,刘世允,安英美
3: 申东烨,郑胜浩
4:刘世允,安英美
5:刘世允
6:郑胜浩
7:申东烨

回复内容:

数据库tag字段内容格式:a,b,c,d ...
假设有这几条记录
1:刘世允
2:郑胜浩
3:申东烨
4: 申东烨,郑胜浩,刘世允,安英美
5: 郑胜浩,刘世允,安英美
6: 申东烨,郑胜浩
7:刘世允,安英美

给出的查询tag
$tag = '申东烨,郑胜浩,刘世允,安英美,李尚勋';
按照相同词的个数排序

查询的结果
1: 申东烨,郑胜浩,刘世允,安英美
2: 郑胜浩,刘世允,安英美
3: 申东烨,郑胜浩
4:刘世允,安英美
5:刘世允
6:郑胜浩
7:申东烨

----------------建表

mysql> create table testsort (tag varchar(100) charset "GBK");
Query OK, 0 rows affected (0.51 sec)
登录后复制

```sql
mysql> describe testsort
-> ;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| tag | varchar(100) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+
1 row in set (0.07 sec)

<br>----------------插入数据
```sql
mysql> insert into testsort(id,tag) values(1,"刘世允"),
    -> (2,"郑胜浩"),
    -> (3,"申东烨"),
    -> (4,"申东烨,郑胜浩,刘世允,安英美"),
    -> (5,"郑胜浩,刘世允,安英美"),
    -> (6,"申东烨,郑胜浩"),
    -> (7,"刘世允,安英美");
Query OK, 7 rows affected (0.07 sec)
Records: 7  Duplicates: 0  Warnings: 0
登录后复制

----------------方法

LHT蓝海豚团购导航
LHT蓝海豚团购导航

Lht蓝海豚(大维)团购导航系统是一套开源程序,采用PHP+MySql平台开发,具有强大的多规则API采集功能、精确化引导消费功能,卓越的负载能力和访问速度,全面支持第三方整合(微博、短信等)前台功能团购名站:显示分类下的所有团购网站,点击团购站,可直接进行查看、推荐、收藏精品商城:为网民推荐展示非团购网站的网上商城今日团购:显示各团购网站正在进行的团购团购排行:今日团购商品可按价格、行业、折扣、

LHT蓝海豚团购导航 0
查看详情 LHT蓝海豚团购导航
mysql> select id,
    -> tag,
    -> char_length(tag)-char_length(replace(tag,',',''))+1 as cnt
    -> from testsort;
+------+-----------------------------------------+------+
| id   | tag                                     | cnt  |
+------+-----------------------------------------+------+
|    1 | 刘世允                                  |    1 |
|    2 | 郑胜浩                                  |    1 |
|    3 | 申东烨                                  |    1 |
|    4 | 申东烨,郑胜浩,刘世允,安英美             |    4 |
|    5 | 郑胜浩,刘世允,安英美                    |    3 |
|    6 | 申东烨,郑胜浩                           |    2 |
|    7 | 刘世允,安英美                           |    2 |
+------+-----------------------------------------+------+
7 rows in set (0.00 sec)

登录后复制

----------------另外注意
Responses below will get you there. However, don't forget to use CHAR_LENGTH() instead of LENGTH() if you're using multibyte characters. – inhan Sep 10 '12 at 3:03

http://stackoverflow.com/questions/12344795/count-the-number-of-occurences-of-a-string-in-a-varchar-field
相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号