【问题标题】:Making a query acording to first 3 letter of database value根据数据库值的前 3 个字母进行查询
【发布时间】:2018-08-07 02:27:14
【问题描述】:

我可以使用以下查询从我的数据库中获取我的“ctr”的总和值。但我的 ctr 超过 5 个字母。我必须检查前 3 个字母并根据这 3 个字母获取总和值

String qry15 = "SELECT SUM(sales),SUM(box) FROM table WHERE ctr = '"+ comboBox.getSelectedItem().toString() +"'" ;

所以我需要 FROM table WHERE ctr.first3letter 之类的东西

这怎么可能?

【问题讨论】:

  • 您不应该将值连接到这样的查询字符串中。这是不安全的,因为它会打开 SQL 注入。您应该使用带参数的准备好的语句。

标签: java mysql database eclipse


【解决方案1】:

您可以使用 MySql 中的substr()

String qry15 = "SELECT SUM(sales),SUM(box) FROM table WHERE substr(ctr,1,3) = '"+ comboBox.getSelectedItem().toString() +"'";

substr() 的工作方式类似于 Java String.substring()。只有指数的计算方式不同(从 1 开始)。

【讨论】:

    【解决方案2】:

    您也可以使用LEFT

    String qry15 = "SELECT SUM(sales),SUM(box) FROM table WHERE LEFT(ctr,3) = '"+ comboBox.getSelectedItem().toString() +"'";
    

    LEFT() 从字符串左侧返回指定数量的字符。

    【讨论】:

      猜你喜欢
      • 2011-09-12
      • 1970-01-01
      • 1970-01-01
      • 2017-09-30
      • 1970-01-01
      • 1970-01-01
      • 2013-01-18
      • 2011-10-31
      • 1970-01-01
      相关资源
      最近更新 更多