• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

mysql 按相似度来排序

php 搞代码 4年前 (2022-01-25) 29次浏览 已收录 0个评论
文章目录[隐藏]

数据库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:申东烨

—————-建表

<code class="lang-sql">mysql> create table testsort (tag varchar(100) charset "GBK");Query OK, 0 rows affected (0.51 sec)</code>

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

<code><br>----------------插入数据```sqlmysql> 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</code>

—————-方法

<code class="lang-sql">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)</code>

—————-另外注意
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-st(、本文来源gao@!dai!ma.com搞$$代^@码网*搞gaodaima代码ring-in-a-varchar-field


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:mysql 按相似度来排序

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址