转载了好几个地方,很难确定最早的出处。
将源码贴出来先。

 1using System; 
 2using System.Text; 
 3using System.IO; 
 4
 5namespace ts
 6
 7    class test
 8    
 9        private static string[] startChars = {"啊", "芭", "擦","搭","蛾","发","噶","哈",
"击","击","喀","垃","妈","拿","哦","啪","期","然", "撒","塌","挖","挖","挖","昔","压","匝"}; 
10        private static string[] endChars = {"澳", "怖", "错","堕","贰","咐","过","祸",
"啊","骏","阔","络","穆","诺","沤","瀑","群","弱", "所","唾","啊","啊","误","迅","孕","座"}; 
11
12        /**//// <summary> 
13        /// 根据字符和对应的中文字符,转成SQL查询条件 
14        /// </summary> 
15        /// <param name="cChar">要转化的字符,[A-Z]</param> 
16        /// <param name="strFieldName">条件左值</param> 
17        /// <returns>SQL条件</returns> 
18        /// <remarks> Sxf 2001-1-4 ***** JY 2002-1-4 </remarks> 
19        public static string GetCharCondition(char cChar, string strFieldName) 
20        
21            string strWord; 
22            int Index = (int)(char.ToUpper(cChar)) - (int)'A'; 
23            if (Index >= 0 && Index < 26) 
24                strWord = startChars[Index]; 
25            else 
26                strWord = startChars[0]; 
27            
28            //return string.Format("(({0}>='{1}' AND {0}<'[') OR ({0} >= '{3}' AND {0} < '{{') OR {0}>='{2}')",  
29            //strFieldName, char.ToUpper(cChar), strWord, char.ToLower(cChar)); 
30            
31            return string.Format("(({0} >= '{3}' AND {0} <= 'zzzzzzzz') OR {0}>='{2}')",  
32            strFieldName, char.ToUpper(cChar), strWord, char.ToLower(cChar)); 
33        } 
34
35        /**//// <summary> 
36        /// 将指定字段值的每个字符分割,这样可以生成同音查询的SQL 
37        /// </summary> 
38        /// <param name="fieldName">字段名</param> 
39        /// <param name="fieldValue">字段值</param> 
40        /// <returns>生成的可以进行同音查询的SQL</returns> 
41        public static string GetCharFullCondition(string fieldName, string fieldValue) 
42        
43            StringBuilder sql = new StringBuilder(1024); 
44            int i = 1; 
45            foreach (char c in fieldValue) 
46            
47                if (i > 1) 
48                    sql.Append(" AND "); 
49                int index = (int)(char.ToUpper(c)) - (int)'A'; 
50                string startWord, endWord; 
51                if (index >= 0 && index < 26) 
52                
53                    startWord = startChars[index]; 
54                    endWord = endChars[index]; 
55                } 
56                else 
57                
58                    startWord = startChars[0]; 
59                    endWord = endChars[0]; 
60                } 
61                string subStr = String.Format("SUBSTRING({0}, {1}, {2})", fieldName, i, 1); 
62                sql.AppendFormat("({0} BETWEEN '{1}' AND '{2}')", subStr, startWord, endWord); 
63                ++i; 
64            } 
65
66            return sql.ToString(); 
67        } 
68    } 
69

按拼音模糊匹配查询条件的生成类相关推荐

  1. Excel 中使用SQL 语句查询数据(七)-----用LIKE 运算符进行模糊匹配查询

    这篇博文要和大家分享的是用LIKE 运算符进行模糊匹配查询下图数据源商品代号包含数字的数据. 我们用Microsoft query连接数据源,步骤请参考本系列第一篇博文.语句如下图 其中 LIKE ' ...

  2. 微软 crm开发笔记 创建查询条件,生成Fetch.XML文件

    创建查询条件,生成Fetch.XML文件 可生成: <fetch version="1.0" output-format="xml-platform" m ...

  3. Elasticsearch教程(27) ES拼接查询条件的工具类

    一.前言 在大多数公司产线Elasticsearch还在6.X的时候,ES已经更新到8.X了,这更新速度也太快了. 目前我手上的项目也做到一套工具类兼容ES6.1到ES7.9+.我用的是原生的ES6. ...

  4. 模糊匹配查询_必须掌握的6个查询函数应用技巧,办公必备,收藏备用!

    在Excel中,有一类函数被称为查找和引用函数,今天,小编给大家分享6个查询函数(Choose.Lookup.Hlookup.Vlookup.Match.Index)的应用技巧,可以收藏备用哦! 一. ...

  5. Excel 2010 SQL应用032 字符范围的模糊匹配查询

    目录 源数据表 解决方案 模糊匹配中字符区间的表示 源数据表 学号 姓名 成绩 20070519 何艳 C 20091884 何冬梅 D 20090790 冯晨 E 20071880 彭勤 B 200 ...

  6. MySQL模糊匹配查询LIKE,REGEXP,IN

    MySQL提供标准的SQL模式匹配,以及一种基于象Unix实用程序如vi.grep和sed的扩展正则表达式模式匹配的格式 下图是示例用到的数据表信息 一.SQL模式 SQL的模式匹配允许你使用&quo ...

  7. Ext js 下拉框模糊匹配查询,并支持反复输入检索

    记录一下Ext js开发中遇到的下拉框检索需求. 由于数据多,Extjs的组件下拉框显示数据多,不好选择,需要能在输入框输入字段,然后下拉框只显示输入字段相关的内容,进行一个模糊查询,并且能够支持反复 ...

  8. mysql 不用斯芬克斯 全局模糊匹配 查询

    mySQL 4.x以上提供了全文检索支持 MATCH --AGAINST 模式(不区分大小写) 建立全文索引的表的存储引擎类型必须为MyISAM 问题是match   against对中文模糊搜索支持 ...

  9. SQL SERVER模糊匹配查询

    2019独角兽企业重金招聘Python工程师标准>>> SELECT * FROM A,B WHERE ';'+B.MATERIALCODEID+';' LIKE '%;'+A.MA ...

最新文章

  1. 重新精读《Java 编程思想》系列之组合与继承
  2. SSE图像算法优化系列一:一段BGR2Y的SIMD代码解析。
  3. 获取当前周一日期_Excel工作表中最全的日期、时间函数,效率办公必备!
  4. C语言六边形蜂巢数组,android 六边形蜂巢布局控件
  5. pat 乙级 1033 旧键盘打字(C++)
  6. 老是说我编译版本不够_Atlas 2.1.0 实践(1)—— 编译Atlas
  7. 如何成为信息安全专家
  8. linux中swi指令,Linux系统调用、新增系统调用方法
  9. linux sendemail,在linux下使用sendEmail发送邮件
  10. 经典C语言学习教程资料
  11. c语言课程设计物业,C语言课程设计报告--物业管理系统.doc
  12. Windows server2016 安装SqlServer2005 无法启动服务
  13. 【Python】一键爬取金庸连载版/三联版/世纪新修版小说
  14. 这次是100秒 蓝箭航天80吨液氧甲烷发动机100%推力试车
  15. LVS+Keepalived高可用
  16. 【漏洞复现】蓝凌OA近期公开几个漏洞汇总
  17. 【精益生产】精益生产十大工具
  18. 如何破解华为家长防护
  19. 超详细版:Python 这样安装如此简单(Windows)
  20. 解读通往8K/3D VR直播之路

热门文章

  1. android+邮箱删除邮件,在Android上删除烦人的语音邮件通知 | MOS86
  2. 查询去除空值_SQL多表查询
  3. C语言中(字符串)输入scanf()、gets()、fgets()以及getchar()、getc()函数的联系与区别
  4. OpenCV(22)SIFT尺度不变特征变换(纯理论)
  5. python从0开始学编程课件_小白从零开始学编程(三)--python基本概念
  6. 在Ubuntu 14.04 64bit上安装Markdown和绘图软件Haroopad
  7. Ubuntu 14.04 64bit上解析wireshark抓包pcap文件格式和源码实现
  8. ZBrush全面入门学习教程 Schoolism – Introduction to ZBrush
  9. 二分法:二分查找(递归+非递归)实现
  10. Excel常用公式记录