Как выполнить результаты поиска? - PullRequest
2 голосов
/ 01 декабря 2011

У меня есть один вопрос о 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и я смогу выполнить запрос на поиск моих подписчиков ...

Может ли кто-нибудь помочь мне выполнить этот запрос?

Ответы [ 2 ]

3 голосов
/ 01 декабря 2011

Может быть, вы ищете что-то вроде этого.

Предполагая, что ваше поле поиска содержит входные данные Laura, я считаю, что вы хотите искать столбцы NickName и Email, которые содержатtext Laura.

LIKE '%Laura%' будет возвращать строки, содержащие текст Laura в любом месте столбца.

LIKE 'Laura%' будет возвращать строки, где текст столбца начинается сtext 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

Пример данных:

Sample

0 голосов
/ 01 декабря 2011
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 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...