从Table中选择userName,其中userId = {1,2,3,4,... n}

时间:2014-01-16 14:33:15

标签: spring jdbctemplate

有没有办法从userId很多的表中获取userName列表,

userId      userName
1              abc
2              xyz
3              pqr

请在我希望通过jdbcTemplate

执行的查询下面的seaa
String query = "Select userName from table_1 where userId = {1,2,3}";

HashMap<int,String> = jdbcTemplate.queryForMap(sql);

 // HashMap - int : userId, String - userName

2 个答案:

答案 0 :(得分:3)

您应该使用

select userName from Table where user_id in (1, 2, 3);

答案 1 :(得分:1)

是的,@ Stelian Galimati我会直接回答你的问题。但是,如果希望您的查询具有更大的灵活性,我建议您查找嵌套的SQL选择。 This may be a helpful beginners tutorial对你而言。此外,还有this允许您测试SQL。一个简单的例子是:

SELECT userId
FROM table_1
WHERE userName IN {
    SELECT userName
    From table_2
    WHERE userLastName = "Smith"
}

详细说明@Stelian Galimatis答案,如果你想在给定多个参数(可能是对象而不是int值)的情况下选择任意数量的user_names,你可以另外使用命名参数,

SELECT userName
FROM table_1
WHERE userId IN {
    :user1,
    :user2,
    :user3,
}

您可以在Tutorials Point找到更多对您有帮助的其他教程。