任何人都可以告诉我在我的查询中有什么不对

时间:2011-07-08 06:29:58

标签: mysql sql

我想搜索具有特定ID的名称。

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

这是我的查询。任何人都可以告诉我什么是错的,用特定ID搜索名称的正确查询是什么。

由于

5 个答案:

答案 0 :(得分:2)

  

您不能在IN中使用单引号   条款。如果您的MemberId列是   varchar类型或字符类型,你   必须使用MemberID IN('2','8')

     

但如果您的MemberID是整数类型,   你必须使用:MemberID IN(2,8)

答案 1 :(得分:1)

可能是MemberID IN('2,8')中的错误。这应该是MemberID IN('2','8')您以错误的方式放置单引号。

1=1?为什么在查询中添加这个?

如果您提供错误消息,那么解决它会更容易。

答案 2 :(得分:0)

我认为你不应该用' '

来限制你的号码

答案 3 :(得分:0)

您的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
    

答案 4 :(得分:0)

我认为错误就在这里会员ID IN('2,8')

而不是这个你可以编写MemberID IN('2','8')或MemberID IN(2,8)bcoz它是数字,所以数据库将接受它。