【问题标题】:sql SELECT query with certain conditions具有特定条件的 sql SELECT 查询
【发布时间】:2012-05-24 04:34:33
【问题描述】:

我的 MySQL 表有 2 行,“name”代表用户名,“port”代表用户端口。

当我得到一些条件时,我想从端口行获取端口号,

示例:如果 nama = Louis,我想获取 Louis 的端口号

注意:我使用 JDBC

我应该使用什么 MySQL 命令?

我已经尝试过这个命令(如下)但仍然失败:

 ResultSet rslset = statement.executeQuery("select cast(case when 
 nama='"+name+"') port from user");

注意:变量“name”是要检查的名称

【问题讨论】:

  • 您是说同一张表有两行单独的行,一行用于端口,一行用于用户?怎么知道哪个端口对应哪个用户?
  • 名称记录和端口记录有什么关系?也许您可以提供示例数据和预期输出

标签: mysql sql jdbc


【解决方案1】:

尝试使用PreparedStatement

/** other codes here **/
String sql = "SELECT port FROM user WHERE nama = ?";
/** con is you active Connection **/
PreparedStatement prest = con.prepareStatement(sql);
prest.setString(1, name); /** this is where you assign the parameter **/
ResultSet rs1 = prest.executeQuery();
/** other codes here **/

这将避免你从 sql 注入。

【讨论】:

    【解决方案2】:
     ResultSet rslset = statement.executeQuery("select port from user where nama='"+name+"'");
    

    【讨论】:

      【解决方案3】:

      试试这个

      select port from user where name='(nameyouwant)';
      

      我希望它对你有用。

      【讨论】:

        【解决方案4】:

        在你的语句中输入这样的查询......

        "select port from user where nama='Louis'"
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-06-14
          • 2021-02-06
          • 1970-01-01
          • 1970-01-01
          • 2018-08-14
          • 2017-02-24
          • 1970-01-01
          相关资源
          最近更新 更多