如何将columnName及其值动态添加到MYSQL表中

时间:2018-09-06 09:24:31

标签: mysql sql jdbc

我有一个主表,例如Fruits_Details(主表),其中的列名称为:
    f_name | f_price |位置
我想向用户提供一个包含以上字段的表单,但还包含一个附加的“ +”号,他可以从中添加新的详细信息作为键,值对。

例如:
水果色-红色
水果季节-春天
还有更多类似的细节。我希望这两个详细信息应存储在不同的表中(子表-我将实现外键概念)。
但是我很困惑如何设计一个查询,该查询将在我的子表中动态添加列名及其相关值。

2 个答案:

答案 0 :(得分:0)

子表应该有一个服装名称和值,必须没有动态值。

child table
-----------
fruit_id
attribute_name
attribute_value


insert into child (fruit_id, attribute_name, attribute_value)
values (1, 'color', 'red')

答案 1 :(得分:0)

由于潜力无限,所以不要按列而是按行... 您将能够以一种方式提取信息,并以另一种方式显示它。

一个名为fruits_attributes的表,其中将包含以下列: attribute_id,f_id(外键),attribute_name,attribute_value

CREATE TABLE `fruits_attributes` (
  `attribure_id` int(8) unsigned NOT NULL AUTO_INCREMENT,
  `f_id` mediumint(8) unsigned NOT NULL,
  `attribure_name` varchar(50) NOT NULL,
  `attribure_value` varchar(50) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `f_id` (`offer_id`),
  KEY `attribure_name` (`attribure_name`),
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
;

然后SELECT查询应该类似于

SELECT f.*, fa.* FROM
Fruits_Details f
LEFT JOIN fruits_attributes fa ON fa.id = f_id