[英]MySQL: insert values from another table into one column
我想使用 MySQL 将项目从一个表移动到另一个表。
这是我目前使用的:
INSERT INTO items_rooms (item_id, room_id,x,y,n)
SELECT id, room_id,x,y,z
FROM `items_phoenix`
这有效,但是我想将多个值插入一列而不是不同列中的每个值。
例如:
在表 items_rooms 中,我希望将 items_phoenix 中的值 x 和 y 放入 items_rooms 中的一列。
如果 x = 5 和 y = 2,我可以像这样将它保存到 items_rooms 中:一列:5.2 而不是每个值的不同列?
对不起,如果这令人困惑!
您可以在 SELECT 列列表中使用表达式。 只要选择列表中的列和目标表中的列在数量和数据类型上匹配,您就可以执行以下操作:
INSERT INTO items_rooms (item_id, room_id, x_dot_y, n)
SELECT id, room_id, CONCAT(x,'.',y), z
FROM `items_phoenix`
您可以对简单情况使用串联,例如:
INSERT INTO items_rooms (
item_id,
room_id,
x_and_y,
n)
SELECT
id,
room_id,
CONCAT(x, '.', y),
z
FROM `items_phoenix`
是的,如果该列可以存储文本信息
只需CONCAT
或CONCAT_WS
值
INSERT INTO items_rooms ( item_id, room_id, my_value, n )
SELECT id, room_id, CONCAT_WS( '.', x, y ), z
FROM `items_phoenix`
你绝对可以做到这一点。 请参阅有关此问题的有用答案。 但是,您应该考虑这是否是一个好主意。 一旦您将不同的列非规范化为一列中的某种字符串表达式,您就创建了一些非常难以维护和查询的东西。 这样做会使您的数据对您自己的可用性降低。
$table_To_Get_From = mysql_query("SELECT * FROM items_phoenix (id, room_id,x,y,z)");
if($table_To_Get_From){
$table = mysql_fetch_assoc($table_To_Get_From);
$values = array($table['id'],$table['room_id'],$table['x'],$table['y'],$table['z']);
mysql_query("INSERT INTO items_rooms (item_id, room_id,x,y,n)
VALUES ($values[0],$values[1],$values[2],$values[3],$value[4])");
}
我没有把它们做成字符串,所以你可能需要使用 '$values[num]'
如果有任何值,这将按照您的需要插入它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.