MYSQL拆分字符串并在数据库中插入单个单词

时间:2013-09-16 18:50:24

标签: java mysql sql

我有一个800.000行的MYSQL数据库。现在我想知道:我如何拆分字符串并在数据库中插入单个单词?

我有这个字符串:“如何使用Windows 7”

我想拆分此字符串,而不是在包含字符串的同一表中插入“how”,“to”,“use”,“windows”,“7”。必须自动为所有800.000行完成此操作。

我正在开发java和sql(sqldeveloper)。

确定。我正在添加更多信息以更明确。这是我桌子的定义。

CREATE TABLE phrase
(
name VARCHAR(300) NOT NULL default '',
category VARCHAR(60) default '',
PRIMARY KEY(name, category)
);

我要分割的字符串是“name”。因此,每个单词(来自分裂)都将插入“短语”表中。

1 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情(未经测试):

 String yourQuery = "SELECT * FROM phrases WHERE name = 'how to use windows 7'";
 PreparedStatement statement = connection.prepareStatement(yourQuery); 
 statement.setMaxRows(1); 
 ResultSet rs = statement.executeQuery();

 String[] arr = null;
 String name;
 while (rs.next()) {
   name = rs.getString(1); // Where 1 is column number.
 }

 arr = name.split(" "); // Split at space 
 // (e.g. "how to use windows 7" becomes "how", "to", "use", "windows", "7"
 System.out.println(arr[2]); // Output "use"
 String combined = Arrays.toString(arr); // "how, to, use, windows, 7"

 yourQuery = "UPDATE phrases SET name = '" + combined + "' WHERE COLUMN = how to use windows 7;"
 statement = connection.prepareStatement(updateStatement);
 int rowsAffected = statement.executeStatement();

我基于this question和其他一些代码在此处提供了一些代码。那当然是替换一行。您可以根据需要循环和/或修改SQL语句。您还应该清理SQL以防止注入向量;但这只是为了简单起见而加入到这里。