我正在使用MySQL。我有一个名为条目的表。该表有一个名为body的列。 body列有字符串数据(长约500字)。
现在,我希望在body列上方转移到column_1,column_2,.... column_300,其中包含每个body列中的第n个单词。所以,如果body列有一个像这样的数据 “我今天吃了午餐”,然后column_1会有'我',第2列会'吃',等等。 我想我可以在PHP中使用它,但我一直想知道它是否可以在MySQL中查询。
答案 0 :(得分:2)
答案 1 :(得分:0)
这里有一个php解决方案。
<?php
//Connect to mysql server
$cn = mysql_pconnect("server", "username", "password");
mysql_select_db("database_name");
$rs = mysql_query("SELECT id, body FROM entries", $cn);
//Traverse each entry row
while($row = mysql_fetch_array($rs)){
list($id, $body) = $row;
$words = explode(" ", $body); //split by spaces (can be improved)
$sqlUpdate = "UPDATE entries SET ";
$sets = array();
//Traverse words
for($i=1; i<=count($words); $i++){
$word_for_mysql = mysql_escape_string($words[$i-1]); //$i-1 cause arrays are zero-based index
$sets[] = "column_$i = '$word_for_mysql'"; //i.e: column_1 = 'lorem'
}
$sqlUpdate.= join(", ", $sets)." WHERE id='$id'";
mysql_query($sqlUpdate, $cn);
}
?>
无论如何,我想知道你为什么要这样做