mysql为每一列添加“prefix”

时间:2013-10-16 20:15:17

标签: php mysql prefix alter

我需要在某个列的每个值前面添加一个“前缀”。

示例:x列中的所有字段均为:200,201,202,203等。 我需要它们为pn_200,pn_201,pn_202,pn_203等。

有没有办法使用ALTERMODIFY命令来执行此操作?

我想要ADD to BEGINNING of * column_name 'pn_'

之类的东西

或者也许在 PHP 中这样做?也许得到该字段的值,将其转换为变量,然后执行类似的操作。

`$variablex = `'SELECT column_name FROM table'
$result = mysqli_query($con, variablex);
 foreach($r=mysqli_fetch_row($result) {
    `ADD TO BEGINNING OF * column_name 'pn_'`

有没有这样做?

4 个答案:

答案 0 :(得分:17)

实际上它更容易。

UPDATE table SET column_name = CONCAT('pn_', column_name)

如果没有WHERE子句,它将更新表的所有行

答案 1 :(得分:5)

SELECT concat('pn_', column_name) AS column_name
FROM yourtable

但是为什么要在数据库层呢?在PHP中完成它是微不足道的:

SELECT column_name ...

while($row = mysql_fetch_assoc($result)) {
   $data = 'pn_' . $row['column_name'];
}

答案 2 :(得分:1)

我认为这就是你想要的

$que = "SELECT column_name FROM table";
$res = mysql_query($que, $con);
if(mysql_num_rows($res)>0){
while($row = mysql_fetch_array($res)){  

echo "PN_". $row['column_name'];

}
}

如果您只想在开始时用pn_显示它 但如果你想在数据库中也改变它,你需要选择所有获取id值和 用concatination更新它

答案 3 :(得分:0)

UPDATE MyTable
SET MyField = CONCAT('pn_', MyField)