永发信息网

asp.net + sql 如何实现超级模糊查询?

答案:2  悬赏:40  手机版
解决时间 2021-05-02 18:42

a = "abcd";
b = "abcedeas";

b1="acijkllllqq";

b2="12cd321k";

指b,b1,b2中包含a中的其中2个以上的字符都查询出来.

请大虾们帮帮忙。

最佳答案

数据库可完不成这样的工作。只能把4个表里的数据都查出来再ASP.NET端做操作。取出数据后用indexof来判断是否符合条件。

全部回答

是可以的。SqlServer 2005 支持创建程序集功能!!所以我们可以用.NET中正则,解决sql搜索匹配不足的缺点。如下图片是我的Demo.

//.cs

using System; using System.Data; using System.Data.SqlClient; using System.Data.SqlTypes; using Microsoft.SqlServer.Server; using System.Text.RegularExpressions;

public partial class UserDefinedFunctions { public static readonly RegexOptions Options = RegexOptions.IgnorePatternWhitespace | RegexOptions.Singleline;

[Microsoft.SqlServer.Server.SqlFunction] public static SqlBoolean RegexMatch(SqlChars input, SqlString pattern) { Regex regex = new Regex(pattern.Value, Options); return regex.IsMatch(new string(input.Value)); } };

//.sql

CREATE ASSEMBLY UserFunction FROM 'D:\UserFunction.dll' WITH PERMISSION_SET = SAFE; GO CREATE FUNCTION [dbo].[RegexMatch](@input [nvarchar](max), @pattern [nvarchar](4000)) RETURNS [bit] WITH EXECUTE AS CALLER AS EXTERNAL NAME [UserFunction].[UserDefinedFunctions].[RegexMatch] GO --设置权限 sp_configure 'clr enabled', 1; GO RECONFIGURE; GO --test --select dbo.RegexMatch(N'123-45-6789', N'[0-9]{3}-[0-9]{2}-[0-9]{4}')

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
求鬼武者1下载地址,没毒的,下载如果速度快
已知:x²-6x+8y+y²+25=0 求、2x+3y
朔州到原平今天是否通车
`|为什么爱情都是以热烈开始, 冷淡结束!```~
尚品坊蛋糕西饼屋新青店地址在什么地方,想过
我买了个CECT938支持彩信功能吗?
AMD X4-620四核和AD9600 四核的区别在哪里,
如何养好芦荟?
QQ飞车什么车最快啊
房地产暗场是什么意思,房产准入要多久能办好
MP4高手,请进!!!
什么星座的人最搞笑?
超过4辆车会被举报吗
东大路/大北关路(路口)在什么地方啊,我要过
每天吃红枣能减肥吗,白醋泡红枣能减肥吗
推荐资讯
玉林批发部在哪里啊,我有事要去这个地方
QQ空间留言板不能翻下一页的,出现什么正在提
孕晚期胸闷气短
梦见爸爸死左.右梦见区没饭吃.
谁能帮我在家把AVA激活
问道万里长城 杨小幂
怎么样下载免费的所有手机应用的软件
有关倒酒的问题
请高手再帮忙设计我们全名的情侣对联 我:张
谁有八年级上册政治复习提纲????????
Cresyn HP500买这款耳机值吗?音质质量怎么样
这次手机抢车位更新有什么新功能?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?