是否有任何查询可以从一列到多列进行数据库修改?

时间:2011-04-29 06:53:32

标签: php mysql sql

我正在使用MySQL。我有一个名为条目的表。该表有一个名为body的列。 body列有字符串数据(长约500字)。

现在,我希望在body列上方转移到column_1,column_2,.... column_300,其中包含每个body列中的第n个单词。所以,如果body列有一个像这样的数据 “我今天吃了午餐”,然后column_1会有'我',第2列会'吃',等等。 我想我可以在PHP中使用它,但我一直想知道它是否可以在MySQL中查询。

2 个答案:

答案 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);
  }
?>

无论如何,我想知道你为什么要这样做