Java 如何将此SQL查询从字符串转换为Int?

Java 如何将此SQL查询从字符串转换为Int?,java,derby,Java,Derby,如何将此SQL查询从字符串转换为Int String sql = "DELETE FROM DEMO.QUESTION " + "WHERE CAST (QUESTION_ID = '"+question+"' ,INT(10))"; 回答您的问题:您正在尝试对布尔值执行cast操作,我认为这不是您想要的(而且无论如何都是无关的) 所以,我认为你要做的是: sql = "delete from demo.question " + "where QUESTION_ID

如何将此SQL查询从字符串转换为Int

String sql = "DELETE FROM DEMO.QUESTION " +
      "WHERE CAST (QUESTION_ID = '"+question+"' ,INT(10))";

回答您的问题:您正在尝试对布尔值执行
cast
操作,我认为这不是您想要的(而且无论如何都是无关的)

所以,我认为你要做的是:

sql = "delete from demo.question " + 
      "where QUESTION_ID = cast('" + question + "', int)"
对此有一些评论:

  • 在将问题变量传递给查询之前,可以在代码中将其解析为整数值。。。这样就不需要您的
    cast
    功能
  • 如果您的
    问题
    变量包含值
    “abc”
    ,您会怎么做?考虑一下这个场景。
  • 您的查询很容易受到SQL注入攻击。考虑使用准备好的语句。

  • 更新

    由于您正在使用Java,并且加强了我的第三个观察,所以您应该看看(以及)


    我坚持认为,与其传递字符串并在查询中强制转换它,不如在Java代码中将其作为整数进行解析,从而摆脱您的问题。

    嗯,微笑是件好事。。。真的。你能帮我吗?具体地说,你想做什么!?假设您使用的是MySQL,则为0或1。。。但是(至少对我来说)这没有任何意义!您可以只删除匹配值,然后继续!或您是否试图将
    问题
    变量转换为
    int
    ,然后执行删除操作?如果
    question
    不是有效的
    int
    类字符串,该怎么办?是的,我想这样做