0

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

IE

我有这个字符串:“如何使用 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)
);

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

4

1 回答 1

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中的一些代码和其他一些代码here。那当然是换一排。您将根据需要循环和/或修改 SQL 语句。此外,您应该清理您的 SQL 以防止注入向量;但这只是为了简单起见。

于 2013-09-16T19:23:13.353 回答