EF - linq (whole word )查询
whole word 查询
where'$'+ts.TargetSegment+'$' LIKE '%[^a-z0-9]a[^a-z0-9]%'
charindex 解释#
CHARINDEX ( expression1 , expression2 [ , start_location ] )
Expression1是要到expression2中寻找的字符中,start_location是CHARINDEX函数开始在expression2中找expression1的位置。
CHARINDEX函数返回一个整数,返回的整数是要找的字符串在被找的字符串中的位置。假如CHARINDEX没有找到要找的字符串,那么函数整数“0”。
1 查找左右是空格与自己#
segmentsProjectTaskSQL.Where(t =>
t.ts.TargetSegment == searchTarget
|| (t.ts.TargetSegment.Contains(" " + searchTarget + " ")
|| t.ts.TargetSegment.StartsWith(searchTarget + " ")
|| t.ts.TargetSegment.EndsWith(" " + searchTarget))
);
生成的SQL
and (( CAST(charindex(N' '+'a'+' ', ts.TargetSegment) AS int)) > 0 or ts.TargetSegment = 'a')
2 查找左右是符号,空格与自己#
charindex不支持通配符,所以使用 patindex
var query = db.Products
.Where( p => SqlFunctions.PatIndex("%[^a-z0-9]a[^a-z0-9]%", "$"+ts.TargetSegment+"$") > 0 );
生成SQL
and (( CAST(patindex(N'%[^a-z0-9]a[^a-z0-9]%', '$' +ts.TargetSegment+'$') AS int)) > 0 or ts.TargetSegment = 'a')
参考#
作者:【唐】三三
出处:https://www.cnblogs.com/tangge/p/16347643.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2018-06-06 【专栏学习】APM——异步编程模型(.NET不推荐)
2016-06-06 数据结构和算法 – 10.集合