当前位置: 首页 > 知识库问答 >
问题:

如何为列表构建SQL SELECT语句?

翟誉
2023-03-14
private int year
private String make
private String model
private String color
Car car1 = new Car(2015, "Toyota", "Camry", "Blue")
Car car2 = new Car(2017, "Honda", "Corolla", "White")
Car car3 = new Car(2011, "Honda", "Civic", "Red")
 
select * from cars_table where year in (2015,2011,2017) and make in (“Toyota”,”Honda”) and model in (“Camry”,”Corolla”,”Civic”)

我相信这个sql语句可以工作,但我不知道如何用Java构建这个语句。我的算法技能不是最好的,我试着用一个for循环来处理列表,但我不能拼凑出第二个get引用。太感谢你们了!

共有1个答案

宦琪
2023-03-14

您的查询将返回太多的行,因为它将返回2011丰田花冠(以及许多其他不需要的组合)。

若要仅用这些值的组合返回值,需要查询:

SELECT *
FROM   cars_table
WHERE  ( year, make, model ) IN (
         ( 2015, 'Toyota', 'Camry' ),
         ( 2017, 'Honda', 'Corolla' ),
         ( 2011, 'Honda', 'Civic' )
       )

db<>在这里摆弄

StringBuilder query = new StringBuilder();
query.append( "SELECT * FROM cars_table WHERE (year, make, model) IN (" );
boolean first = true;
for ( final Car car: carList )
{
  if ( first )
  {
    first = false;
  } else {
    query.append(',');
  }
  query.append('(');
  query.append(car.getYear());
  query.append(",'");
  query.append(car.getMake());
  query.append("','");
  query.append(car.getModel());
  query.append("')");
}
query.append(')');
System.out.println(query);
 类似资料:
  • 我正试图掌握mysqli对象及其工作方式。我使用上面的查询查找数据库的表名,并将它们插入select下拉列表。当我使用类似的代码填充另一个select下拉列表时,我使用在while循环运行时获取结果。然后我的select语句是当我使用上面的select语句时,我需要使用索引0而不是“table\u name”。为什么呢?当我在PHP MyAdmin中运行上面的select语句时,我得到了一个行名为

  • 问题内容: 我有一堂课 我有一个返回List对象的方法,例如 我需要像这样将列表转换为JSONArray 谁能帮我得到这个?在此先感谢.. 问题答案: 我认为您无需下载Jettison jar文件。 使用,您可以轻松地将该列表转换为JSON对象,例如@Juniad Answer

  • 问题内容: 我有一个简单的验证器来验证String值是否是预定义列表的一部分: 例如,它将验证: 我想为字符串列表创建一个验证器以验证如下内容: 我尝试了这个: 问题是,如果list包含2个或多个非法值,则将只有一个(第一个)约束违规。我希望它有多个。我应该怎么做? 问题答案: 您当前的代码有2个问题: 在您的方法中,您应该像这样遍历给定列表的所有元素(设置适当的标志): 第二个是针对约束违反的实

  • 下面我附上了一个测试程序来演示asyncio.gather抛出类型错误的问题。 我的目标是:进行多个并发异步调用,从连接到我的计算机上的一组USB摄像头将摄像头图像捕获到文件中。当所有相机都完成了异步捕获后,我希望恢复处理。 这里显示的异步协程take_image()对ffmpeg应用程序进行系统调用,该应用程序从指定的摄像机捕获图像到指定的文件。 下面显示的main()例程获取多个摄影机的列表,

  • 我有一个包含100列的数据框: 我有一个列名列表: 结构列表=['column4','column3','column2'] 预期架构: 目前,我正在对以下值进行硬编码: 是否有一种方法可以动态传递列表中的值?

  • 我只是在尝试使用更复杂的语句时修补SQL。我不知道这是否符合条件,但请指导如何进行。 我已经研究了连接和一些关于多个Select语句的问题,但无法正确理解它们。 我有以下两张表: emp表: 图书目录: 其中books表中的是引用emp表的外键。 我需要从特定组织的books表中获取所有记录。但除此之外,我还需要在结果中获得各个员工的所有数据,如姓名、地址。 请给我指引正确的方向。 谢谢