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