zoukankan
html css js c++ java
拼音查询生成SQL条件的类
拼音查询生成SQL条件的类
public
class
SQLPingYing
{
private
static
string
[] startChars
=
{
"
啊
"
,
"
芭
"
,
"
擦
"
,
"
搭
"
,
"
蛾
"
,
"
发
"
,
"
噶
"
,
"
哈
"
,
"
击
"
,
"
击
"
,
"
喀
"
,
"
垃
"
,
"
妈
"
,
"
拿
"
,
"
哦
"
,
"
啪
"
,
"
期
"
,
"
然
"
,
"
撒
"
,
"
塌
"
,
"
挖
"
,
"
挖
"
,
"
挖
"
,
"
昔
"
,
"
压
"
,
"
匝
"
}
;
private
static
string
[] endChars
=
{
"
澳
"
,
"
怖
"
,
"
错
"
,
"
堕
"
,
"
贰
"
,
"
咐
"
,
"
过
"
,
"
祸
"
,
"
啊
"
,
"
骏
"
,
"
阔
"
,
"
络
"
,
"
穆
"
,
"
诺
"
,
"
沤
"
,
"
瀑
"
,
"
群
"
,
"
弱
"
,
"
所
"
,
"
唾
"
,
"
啊
"
,
"
啊
"
,
"
误
"
,
"
迅
"
,
"
孕
"
,
"
座
"
}
;
/**/
///
<summary>
///
根据字符和对应的中文字符,转成SQL查询条件
///
</summary>
///
<param name="cChar">
要转化的字符,[A-Z]
</param>
///
<param name="strFieldName">
条件左值
</param>
///
<returns>
SQL条件
</returns>
///
<remarks>
Sxf 2001-1-4 ***** JY 2002-1-4
</remarks>
public
static
string
GetCharCondition(
char
cChar,
string
strFieldName)
{
string
strWord;
int
Index
=
(
int
)(
char
.ToUpper(cChar))
-
(
int
)
'
A
'
;
if
(Index
>=
0
&&
Index
<
26
)
strWord
=
startChars[Index];
else
strWord
=
startChars[
0
];
//
return string.Format("(({0}>='{1}' AND {0}<'[') OR ({0} >= '{3}' AND {0} < '{{') OR {0}>='{2}')",
//
strFieldName, char.ToUpper(cChar), strWord, char.ToLower(cChar));
return
string
.Format(
"
(({0} >= '{3}' AND {0} <= 'zzzzzzzz') OR {0}>='{2}')
"
,
strFieldName,
char
.ToUpper(cChar), strWord,
char
.ToLower(cChar));
}
/**/
///
<summary>
///
将指定字段值的每个字符分割,这样可以生成同音查询的SQL
///
</summary>
///
<param name="fieldName">
字段名
</param>
///
<param name="fieldValue">
字段值
</param>
///
<returns>
生成的可以进行同音查询的SQL
</returns>
public
static
string
GetCharFullCondition(
string
fieldName,
string
fieldValue)
{
StringBuilder sql
=
new
StringBuilder(
1024
);
int
i
=
1
;
foreach
(
char
c
in
fieldValue)
{
if
(i
>
1
)
sql.Append(
"
AND
"
);
int
index
=
(
int
)(
char
.ToUpper(c))
-
(
int
)
'
A
'
;
string
startWord, endWord;
if
(index
>=
0
&&
index
<
26
)
{
startWord
=
startChars[index];
endWord
=
endChars[index];
}
else
{
startWord
=
startChars[
0
];
endWord
=
endChars[
0
];
}
string
subStr
=
String.Format(
"
SUBSTRING({0}, {1}, {2})
"
, fieldName, i,
1
);
sql.AppendFormat(
"
({0} BETWEEN '{1}' AND '{2}')
"
, subStr, startWord, endWord);
++
i;
}
return
sql.ToString();
}
}
查看全文
相关阅读:
2020年“3D视觉工坊”视频号最受欢迎视频 Top 10!
缓存一致性解决方案杂谈
Mybatis的@Param注解在多参数时候不写,可以正确执行。
Redis设计与实现之简单动态字符串
YApi mac上部署
拖拽方式生成Vue用户界面
终于可以愉快的撸Java异步代码了!
Windows 取证之ShellBags
初识Fastjson漏洞(环境搭建及漏洞复现)
mongo-express 远程代码执行漏洞分析
原文地址:https://www.cnblogs.com/skyblue/p/951691.html
最新文章
屏蔽百度热搜
LabelEncoder和OrdinalEncoder
dva数据流
自定义React组件
创建umi项目
OS X/Mac 没有声音
rst标记语法
交叉验证
pandas自动推断日期类型
GaussDB 200远程登陆配置
热门文章
在16G笔记本上安装GaussDB 200
面试官:Netty的线程模型可不只是主从多Reactor这么简单
Dubbo的设计理念原来就藏在这三张图中
仅用一句SQL更新整张表的涨跌幅、涨跌率
多视图立体匹配论文分享:BlendedMVS
Bags of Binary Words | 词袋模型解析
相机参数估计值如何计算?
EF-Net一种适用于双流SOD的有效检测模型(Pattern Recognition)
Bundle Adjustment原理及应用(附实战代码)
一文详解ORB-SLAM3中的地图管理
Copyright © 2011-2022 走看看