【问题标题】:How can I search a string in some of the tables in a database using JDBC?如何使用 JDBC 在数据库的某些表中搜索字符串?
【发布时间】:2018-04-07 21:21:26
【问题描述】:

假设我的表 person 在 mysql 数据库中有不同的列

这些列是:

姓名、年龄、描述、朋友

我正在尝试使用 google app script 中的 jdbc 在 name、descriptionfriends 列中搜索特定字符串。

结果应该返回给我一个包含与我的查询匹配的所有行的数组

例如这里是一个数据库:

 ------------------------------------------
| name | age | description      | friends  |
 ------------------------------------------
| John | 20  | "I like Joe"     | Joe Jack |
| Joe  | 32  | "I like me"      | -        |
| Jack | 23  | "I like nothing" | -        |
 ------------------------------------------

如果我的查询是Joe,那么应该返回line 1line 2,因为Joeline 1中出现了两次在第 2 行中 1 次。

这里是我用来通过name

搜索行的方法
 function getLine(name)
{
  var ret = {};
  var conn = Jdbc.getConnection(dbUrl, user, userPwd);
  var stmt = conn.createStatement();
  var res = stmt.executeQuery("SELECT * FROM item WHERE name='" + name + "'");
  var numCol = res.getMetaData().getColumnCount();
  var i = 0;
  while (res.next())
  {
    while (i < numCol)
    {
      ret[i]= res.getString(i + 1);
      i++;
    }
  }
  return (ret);
}

【问题讨论】:

    标签: mysql sql database jdbc google-apps-script


    【解决方案1】:

    Like 和 OR 是您查询的正确关键字。

    select *
    from item
    where name = 'Joe'
            or description like concat('%', 'Joe', '%')
            or friends like concat('%', 'Joe', '%');
    

    【讨论】:

      猜你喜欢
      • 2010-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-07
      • 1970-01-01
      • 1970-01-01
      • 2021-06-22
      • 2014-07-28
      相关资源
      最近更新 更多