我想搜索具有特定ID的名称。
select * from members where 1=1 AND MemberID IN('2,8') and Status = '1' AND (FirstName LIKE 'v%') ORDER BY MemberID
这是我的查询。任何人都可以告诉我什么是错的,用特定ID搜索名称的正确查询是什么。
由于
答案 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它是数字,所以数据库将接受它。