我有一个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”。因此,每个单词(来自分裂)都将插入“短语”表中。
答案 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以防止注入向量;但这只是为了简单起见而加入到这里。