【问题标题】:How to perform this search results?如何执行此搜索结果?
【发布时间】:2011-12-01 09:12:27
【问题描述】:

我有一个关于 LINQ 的问题,我不知道如何得到我需要的结果。

在我的社交网络中,我有追随者板,我还有一个搜索框,可以通过姓名或电子邮件查找相关的追随者。

我的问题是,我不知道如何得到这个结果。拥有用户的昵称或邮箱,搜索相关关注者。

这是我的追随者表:

----------------------------
| ID | UserID | FollowerID |
----------------------------

我的用户表(只有我需要的列)

-------------------------------------
| ID | Email | Nickname | Thumbnail |
-------------------------------------

我的搜索框将能够通过昵称或电子邮件搜索结果。

我尝试执行此查询:

SELECT u.ID, u.Thumbnail, u.Nickname, u.Email
FROM dbo.[User] u
INNER JOIN dbo.Followers f
ON f.FollowerID = u.ID
WHERE f.UserID=4 and u.Nickname LIKE 'Laura'
ORDER BY u.Nickname

在这种情况下,我的 UserID = 4,我将能够执行我的追随者的搜索请求...

谁能帮我完成这个查询?

【问题讨论】:

    标签: sql asp.net-mvc-3


    【解决方案1】:

    也许你正在寻找类似的东西。

    假设您的搜索框包含输入Laura,我相信您想要搜索包含文本LauraNickNameEmail 列。

    LIKE '%Laura%' 将在列中的任意位置返回包含文本 Laura 的行。

    LIKE 'Laura%' 将返回列文本以文本 Laura 开头的行。

    简单地使用LIKE 'Laura' 将只返回与文本Laura完全匹配的行。

    SELECT      u.ID
            ,   u.Thumbnail
            ,   u.Nickname
            ,   u.Email
    FROM        dbo.[User]      u
    INNER JOIN  dbo.Followers   f
    ON          f.FollowerID    = u.ID
    WHERE       f.UserID        = 4 
    AND         (
                        u.Nickname  LIKE '%Laura%'
                    OR  u.Email     LIKE '%Laura%'
                )
    ORDER BY    u.Nickname
    

    样本数据:

    【讨论】:

    • 它没有给我带来结果...我的追随者表中有 UserID=4,我有 Laura,在追随者表中 UserID = 2 作为 FollowerID=2,我有昵称“劳拉”在我的用户表中...所以它应该给我带来结果Laura...
    • 谢谢 Siva,我在 Followers 表中切换了 UserID 和 FollowerID。
    【解决方案2】:
    var results = from u in users 
                  join f in followers on f.Userid equals u.id
                  where u.Nickname.Contains('Laura') || u.Email.Contains('Laura') 
                        && f.UserID==4
                  select new {ID = u.ID, 
                              Thumbnail = u.thumbnail, 
                              Nickname = u.Nickname, 
                              Email = u.Email }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-12
      • 1970-01-01
      • 2010-11-15
      相关资源
      最近更新 更多