Любой может сказать мне, что не так в моем запросе - PullRequest
0 голосов
/ 08 июля 2011

Я хочу найти имя с конкретными идентификаторами.

select * from members where 1=1 AND MemberID IN('2,8') and Status = '1' AND (FirstName LIKE 'v%') ORDER BY MemberID

вот мой запрос.Может кто-нибудь сказать мне, что не так и что правильный запрос для поиска имени с конкретными идентификаторами.

Спасибо

Ответы [ 5 ]

2 голосов
/ 08 июля 2011

Вы не должны использовать одинарные кавычки в IN пункт. Если ваш столбец MemberId тип varchar или тип символа, вы необходимо использовать MemberID IN ('2', '8')

но если ваш MemberID имеет целочисленный тип, Вы должны использовать: MemberID IN (2,8)

1 голос
/ 08 июля 2011

Может быть ошибка в этом MemberID IN('2,8'). Это должно быть MemberID IN('2','8') Вы поместили одинарную кавычку в неправильном порядке.

Также 1=1? почему добавил это в запрос?

Если вы укажете сообщение об ошибке, вам будет легче его решить.

0 голосов
/ 08 июля 2011

Я думаю, что здесь стоит ошибкаэто номер, поэтому база данных примет его.

0 голосов
/ 08 июля 2011

Возможно, ваше предложение IN неверно

  • Если MemberID - это число, оно должно быть:

       SELECT *
         FROM members
        WHERE 1=1
          AND MemberID IN (2, 8)
          AND Status = '1'
          AND FirstName LIKE 'v%'
     ORDER BY MemberID
    
  • Если MemberId - строка, она должна быть

       SELECT *
         FROM members
        WHERE 1=1
          AND MemberID IN ('2', '8')
          AND Status = '1'
          AND FirstName LIKE 'v%'
     ORDER BY MemberID
    
0 голосов
/ 08 июля 2011

Я думаю, вы не должны связывать свои номера с ' '

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...