• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > 实现按关健字模糊查询,并按匹配度排序的SQL语句

实现按关健字模糊查询,并按匹配度排序的SQL语句

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了关健字,模糊查询等相关知识,希望本文的分享对您有所帮助

SQL语句实现按关健字模糊查询,并按匹配度排序

代码如下:
IF OBJECT_ID('TB')IS NOT NULL DROP TABLE TB
GO
CREATE TABLE tb (ID INT IDENTITY(1,1),VALUE NVARCHAR(100))
INSERT tb SELECT N'中国'
UNION ALL SELECT N'中国人'
UNION ALL SELECT N'中国人民'
UNION ALL SELECT N'日本'
UNION ALL SELECT N'日本人'
UNION ALL SELECT N'我的心中有人姑娘'
UNION ALL SELECT N'人民网'
UNION ALL SELECT N'中国是个伟大的国家'
UNION ALL SELECT N'我们都是中国人,都是炎黄子孙,都是龙人传人'
IF OBJECT_ID('fn_SplitStringToROWS')IS NOT NULL DROP FUNCTION fn_SplitStringToROWS
GO
CREATE FUNCTION fn_SplitStringToROWS
(
@str NVARCHAR(100)
)
RETURNS @t TABLE(v NVARCHAR(2))
AS
BEGIN
DECLARE @i INT
SET @i=1
WHILE @i<=LEN(@str)
BEGIN
INSERT @t SELECT SUBSTRING(@str,@i,1)
SET @i=@i+1
END
RETURN
END
GO
SELECT * FROM DBO.fn_SplitStringToROWS(N'中国人')
DECLARE @searchSTR NVARCHAR(20)
SET @searchSTR=N'中国人'
SELECT ID,[VALUE] FROM tb a
INNER JOIN fn_SplitStringToROWS(@searchSTR) b
ON CHARINDEX(b.v,a.VALUE)>0
WHERE VALUE LIKE N'%[中国人]%'
GROUP BY ID,VALUE
ORDER BY COUNT(DISTINCT v) DESC
DROP TABLE tb

/*
v
----
中
国
人

(3 個資料列受到影響)

ID VALUE
----------- ----------------------------------------------------------------------------------------------------
2 中国人
3 中国人民
9 我们都是中国人,都是炎黄子孙,都是龙人传人
6 我的心中有人姑娘
1 中国
8 中国是个伟大的国家
5 日本人
7 人民网

(8 個資料列受到影響)
*/
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 实现按关健字模糊查询,并按匹配度排序的SQL语句

相关文章

  • 2018-12-05 Couchbase Server 2.0 发布,NoSQL 数据库
  • 2017-05-11mysql重装后出现乱码设置为utf8可解决
  • 2017-05-11mysql筛选GROUP BY多个字段组合时的用法分享
  • 2018-12-05MYSQL 优化常用方法
  • 2018-12-05mysql主从服务器同步心得体会第1/2页
  • 2018-12-05MySQL 使用自增ID主键和UUID 作为主键的优劣比较详细过程(500W单表)
  • 2018-12-05如何远程修复损坏的mysql数据库
  • 2018-12-05mysql服务器中主从配置介绍
  • 2017-05-11在CentOS上安装phpMyAdmin的教程
  • 2017-05-11浅析mysql 共享表空间与独享表空间以及他们之间的转化

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • sqlserver对字段的添加修改删除、以及字段的说明
    • 解决Mysql5.7.17忘记密码的办法分享(图)
    • Mysql删除重复的数据的方法
    • Oracle动态交叉表生成
    • oracle数据库中如何处理clob字段方法介绍
    • SQL语句分组获取记录的第一条数据的方法
    • MSsql每天自动备份数据库并每天自动清除log的脚本
    • 有关Oracle数据库的备份情况
    • 解析在MYSQL语法中使用trim函数删除两侧字符
    • 更改SQL Server更改当前数据库的所有者:sp_changedbowner

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有