1
 2
 3
 4  --在所有的char类型的列中模糊查找某个值。
 5 --**注意预先切换到当前的数据库中。
 6 DECLARE  @TABLE_CATALOG NVARCHAR(MAX)--数据库名
 7   ,@TABLE_SCHEMA NVARCHAR(MAX)--架构名
 8   ,@TABLE_NAME NVARCHAR(MAX)--表名
 9   ,@COLUMN_NAME NVARCHAR(MAX)--列名
10   ,@SQL NVARCHAR(MAX)--动态sql语句
11   ,@find_char nvarchar(max)--查找的内容变量
12 --*********************************************************************************
13   set @find_char='1月22日支办公费、车修、过路费、宿费等款'--输入查找的内容
14 --*********************************************************************************
15 declare @t table (TABLE_CATALOG NVARCHAR(MAX)
16   ,TABLE_SCHEMA NVARCHAR(MAX)
17   ,TABLE_NAME NVARCHAR(MAX)
18   ,COLUMN_NAME NVARCHAR(MAX))--定义表变量
19 DECLARE C1 CURSOR FOR--定义游标,从INFORMATION_SCHEMA.COLUMNS和INFORMATION_SCHEMA.TABLES两个系统视图中获取表和字段的信息,用于下面构建动态sql语句
20   SELECT A.TABLE_CATALOG
21     ,A.TABLE_SCHEMA
22     ,A.TABLE_NAME
23     ,A.COLUMN_NAME
24   FROM INFORMATION_SCHEMA.COLUMNS A--注意在这里修改数据库名称
25   JOIN INFORMATION_SCHEMA.TABLES B--注意在这里修改数据库名称
26   ON  A.TABLE_CATALOG=B.TABLE_CATALOG
27    AND A.TABLE_SCHEMA=B.TABLE_SCHEMA
28    AND A.TABLE_NAME=B.TABLE_NAME
29         WHERE   B.TABLE_TYPE='BASE TABLE'--仅仅查询表,不包括视图,可根据实际情况修改
30     AND
31      A.TABLE_NAME  IN
32      (select a.name--,b.rowcnt--,object_name(b.id),a.id
33      from sysobjects a join sysindexes b
34      on a.id=b.id
35      where a.xtype='u' and b.indid<2
36                      --and a.name like '%zy%'--限定表的名称
37                      --and rowcnt <=10000--限定记录条数
38      )
39     AND
40      (DATA_TYPE LIKE N'%CHAR' or DATA_TYPE like N'%text')--仅仅查找CHAR类型的列CHAR,VARCHAR,NCHAR,NVARCHAR四种情况,可根据实际情况修改
41
42 OPEN C1
43 FETCH NEXT FROM C1 INTO    @TABLE_CATALOG
44         ,@TABLE_SCHEMA
45         ,@TABLE_NAME
46         ,@COLUMN_NAME
47 WHILE @@FETCH_STATUS=0
48 BEGIN
49  SET @SQL=
50     'IF EXISTS (SELECT ['+@COLUMN_NAME+'] FROM ['+@TABLE_CATALOG+'].['+@TABLE_SCHEMA+'].['
51     +@TABLE_NAME+'] WHERE ['+@COLUMN_NAME+'] like ''%'+@find_char+'%'')'--模糊查找
52     +'print ''select * from ['' + @TABLE_CATALOG+''].['' + @TABLE_SCHEMA+''].['' + @TABLE_NAME + ''] where ['' + @COLUMN_NAME + ''] like %''+@find_char+''%'''--构建动态sql语句,生成可以直接查询的语句。
53     EXEC SP_EXECUTESQL @SQL--执行动态sql语句
54       ,N'@TABLE_CATALOG NVARCHAR(MAX) OUT
55       ,@TABLE_SCHEMA NVARCHAR(MAX) OUT
56       ,@TABLE_NAME NVARCHAR(MAX) OUT
57       ,@COLUMN_NAME NVARCHAR(MAX) OUT
58       ,@find_char nvarchar(max) out'
59       ,@TABLE_CATALOG  OUT
60       ,@TABLE_SCHEMA  OUT
61       ,@TABLE_NAME OUT
62       ,@COLUMN_NAME OUT
63       ,@find_char  out--生成的查询语句仍然需要手工加上单引号
64    FETCH NEXT FROM C1 INTO   @TABLE_CATALOG
65        ,@TABLE_SCHEMA
66        ,@TABLE_NAME
67        ,@COLUMN_NAME
68 END
69 CLOSE C1
70 DEALLOCATE C1
71   

转载于:https://www.cnblogs.com/bgbird/p/4959228.html

一个比较笨的全文搜索的例子(分析结构用)-模糊查找相关推荐

  1. MySQL数据库对dvbbs.php全文搜索的完全分析

    好几天都没有更新文章了,唉,人就是懒呀. 首先,大家先去下载一份dvbbs.php beta1的代码,解压后先抛开php代码,找出你的mysql手册,如果没有手册那么就直接看下面的实例操作吧! mys ...

  2. mysql 全文 短词忽略 问题_MySQL数据库对dvbbs.php全文搜索的完全分析_MySQL

    以下为引用的内容: //fcicq:下面给大家看看这里php的分词是怎么做的. function &DV_ChineseWordSegment($str,$encodingName='gbk' ...

  3. PostgreSQL SQL 语言:全文搜索

    本文档为PostgreSQL 9.6.0文档,本转载已得到原译者彭煜玮授权. 1. 介绍 全文搜索(或者文本搜索)提供了确定满足一个查询的自然语言文档的能力,并可以选择将它们按照与查询的相关度排序.最 ...

  4. CHM格式的可以全文搜索的Spring3.2官方参考文档

        Spring的官方参考文档是html格式的,并且没有目录树,用它本身的跳转功能,跳来跳去经常把头给跳晕了! 最重要的一个缺点是没有全文搜索,于是一生气就做了一个CHM格式的有目录,带全文搜索的 ...

  5. MySQL 全文搜索支持, mysql 5.6.4支持Innodb的全文检索和类memcache的nosql支持

    背景:搞个个人博客的全文搜索得用like啥的,现在mysql版本号已经大于5.6.4了也就支持了innodb的全文搜索了,刚查了下目前版本号都到MySQL Community Server 5.6.1 ...

  6. Elasticsearch:一个方便易用的全文搜索库

    注:本文内容均来自<Elasticsearch权威指南>,是做读书笔记,同时做一个总结. Elasticsearch是使用基于http的RestFul来实现和使用的,因此使用curl来测试 ...

  7. mysql权重怎么配置_实现一个简单的mysql带权重的中文全文搜索

    自己在写一个web,希望对数据库做全文检索.但是google了解到,由于中文分词的缘故,mysql只支持英文的全文搜索,想支持中文的,需要各种插件or实现一些比较复杂的机制,而买的虚拟主机并不支持这些 ...

  8. Flask 教程 第十六章:全文搜索

    本文转载自:https://www.jianshu.com/p/56cfc972d372 这是Flask Mega-Tutorial系列的第十六部分,我将在其中为Microblog添加全文搜索功能. ...

  9. FTServer 1.1 发布,多语言全文搜索服务器

    FTServer是一个简洁的多语言全文搜索服务器,能在低于2M内存的情况下对大于2M的文本进行搜索,并且接近内存搜索速度. 搜索结果排序按照ID顺序,不跳过,不漏词,不多余, 可以按任意组合搜索中文, ...

最新文章

  1. SQL总结(三)其他查询
  2. python php linux-Linux 中PHP的安装教程
  3. 020.2.2 runtime类
  4. S5PV210开发 -- 通信
  5. OpenGL CPU射线行进
  6. Java 并发总结——线程池
  7. 内联元素,取消间隙和默认效果
  8. antd 表格树如何展开_React Ant Design树形表格的复杂增删改
  9. Beta阶段第1周/共2周 Scrum立会报告+燃尽图 06
  10. WCF如何使用X509证书(安装和错误)(二)
  11. python实现从二维矩阵左上角到右下角的出路数寻找
  12. linux内存管理实验,Linux内存管理机制研究
  13. python for everybody作业和测试答案_PY4E-Python for Everybody课后作业答案
  14. python标准差不用numpy_Python numpy标准差
  15. 快讯 | 科技部公布首批国家人工智能创新平台名单,BAT+科大讯飞入选
  16. Android动态logo,Android模仿拉勾网logo动画效果
  17. 解决windows2003 sp1“数据执行保护”惹的祸
  18. 使用BDE数据库引擎的应用软件出现Insufficient disk space的解决方法
  19. Android手机电池耐用吗,八款超长待机的智能手机 大容量电池十分耐用
  20. 【数据降维】数据降维方法分类

热门文章

  1. array python 交集_python-数组之间的交集索引
  2. 网络matlab程序_【Matlab】官网资源盘点
  3. git 安装包_Git、TortoiseGit的安装、使用说明
  4. CF思维联系–CodeForces-217C C. Formurosa(这题鸽了)
  5. 64位Ubunu 16.04系统安装最新版本的wine 4.0
  6. matlab 多维数组申明
  7. 31岁负债59万(房贷27万,私人借款32万),该怎么办?
  8. VC++静态文本框/PICTURE控件的notify属性
  9. Java基本流程控制语句
  10. linux增量安装tomcat_linux与windows下tomcat的java内存设置