我试图在LINQ中重新创建以下SQL查询:
select * from table where column like 'RECORD_%01'
我拥有的是:
var data = from t in context.table
where t.column.StartsWith("RECORD")
&& t.column.EndsWith("01")
select t;
相当于:
select * from table where column like 'RECORD%01'
有人可以帮助我如何添加'_%'
的条件,而不是'%'
吗?
如果你们不知道我在谈论SQL问题,请查看以下image,它解释了SQL。
答案 0 :(得分:2)
这是你想要的(或类似的东西):
https://docs.microsoft.com/en-us/dotnet/api/system.data.linq.sqlclient.sqlmethods.like
LINQ2SQL LIKE Command for Phrase
这允许您指定LIKE语句。
var data = from t in context.table
where SqlMethods.Like(t.column, "RECORD_%01")
select t;
答案 1 :(得分:0)
以这种方式:
var data = from t in context.table
where t.column.StartsWith("RECORD")
&& t.column.EndsWith("01")
&& t.column.Length > 8
select t;
这可以确保RECORD
和01
之间至少有一个字符。
当然,根据您使用的查询提供程序,您可能只想尝试使用SqlMethods.Like
,SqlFunctions.PatIndex
或其中一种方法来使用LIKE
运算符here
答案 2 :(得分:0)
从这看起来你似乎想确保
在这种情况下,您可以检查开始时间,结束时间以及长度。
var data = from t in context.table
where t.column.StartsWith("RECORD")
&& t.column.EndsWith("01")
&& t.column.Length>=9
select t;