12

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

示例: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

4 回答 4

25

实际上它更容易。

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

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

于 2013-10-16T20:18:13.257 回答
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'];
}
于 2013-10-16T20:17:20.283 回答
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 值并使用连接更新它

于 2013-10-16T20:21:45.293 回答
0
UPDATE MyTable
SET MyField = CONCAT('pn_', MyField)
于 2013-10-16T20:17:04.843 回答