mysql добавляет "префикс" к каждому столбцу

мне нужно добавить 'префикс' перед каждым значением в определенном столбце.

пример: все поля в столбце x: 200, 201, 202, 203 и т. д. Мне нужно, чтобы они были pn_200, pn_201, pn_202, pn_203 и т. д.

есть ли способ, чтобы использовать ALTER или MODIFY команды для этого?

Я хотел бы что-то вроде 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 ответов


на самом деле это даже проще.

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

без предложения WHERE он обновит все строки вашей таблицы


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'];
}

Я думаю, что это то, что вы хотите

$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_ в начале но если вы хотите изменить его также в базе данных, вам нужно выбрать all get значение id и обновить его с concatination


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