如何使用JDBC搜索数据库中某些表中的字符串?

时间:2018-04-07 21:21:26

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

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

柱子是:

姓名,年龄,描述,朋友

我正在尝试使用谷歌应用脚​​本中的jdbc搜索名称,描述朋友列中的某个字符串。

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

例如这里是一个数据库:

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

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

目前我用的是用名称

搜索一行的内容
 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);
}

1 个答案:

答案 0 :(得分:3)

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

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