请问带LIKE条件的LEFTJOIN该怎么写

踏平扶桑 2016-12-10 10:53:37

SELECT TOP 6 * FROM [CompeteOrder]
LEFT OUTER JOIN CompeteList ON CompeteOrder.C_ListIDs LIKE ('%,'+CONVERT(VARCHAR(9),CompeteList.CL_ID)+',%' )
LEFT OUTER JOIN [UserTable] ON ([CompeteOrder].[C_UserID] = [UserTable].[ID])
WHERE (([CompeteOrder].[C_PayState] = '已支付') AND ([CompeteOrder].[C_UserID] = 1))
ORDER BY [CompeteOrder].[OrderID] DESC

上面是SQL语句,主要实现功能是查询包含在一个字段里面的所有记录
比如 字段值是 ,北京,,上海,,福建,,河南,,新疆,,山西,,内蒙古,
另外一个表是以上(全部或部分)的记录 比如某几个记录 分别是 上海 福建 的记录

我写的语句是

return ORM.DbHelper.From<CompeteOrder>()
.LeftJoin<CompeteList>((o, p) =>("%,"+ p.CL_ID+",%").Like(o.C_ListIDs))
.LeftJoin<UserTable>((o, p) => o.C_UserID == p.ID)
.OrderByDescending(u => u.OrderID)
.Where(Dwhere.ToWhereClip())
.Select()
.Page(PageSize, PageIndex)
.ToDataTable();


但总是报错 报错的语句就是LeftJoin<CompeteList>((o, p) =>("%,"+ p.CL_ID+",%").Like(o.C_ListIDs))

请问各位大神,这样的LIKE模糊匹配的语句应该怎么写?
谢谢啦~~
...全文
2640 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoxiangqing 2016-12-14
  • 打赏
  • 举报
回复
用Contains就行了
正怒月神 2016-12-12
  • 打赏
  • 举报
回复
可以类似于 from a in A join b in B.where(x=>字符串.contains(x.字段名)) on a.id equals b.id
小猫阿尤 2016-12-12
  • 打赏
  • 举报
回复
Where(a => a.ProductCode.Contains(queryStr)) Contains类似sql中的 like%%
  • 打赏
  • 举报
回复
通过where写,linq的join没sql的那么强

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧