如何在mysql中向列添加多个值

13z8s7eq  于 2021-06-24  发布在  Mysql
关注(0)|答案(3)|浏览(532)

这是我对创建表的查询

CREATE TABLE `result` (
  `id` int(11) NOT NULL,
  `l_id` varchar(25) NOT NULL,
  `lname` varchar(200) NOT NULL,
  `first_prize` varchar(9) DEFAULT NULL,
  `consolation_prize` varchar(9) DEFAULT NULL,
  `second_prize` varchar(9) DEFAULT NULL,
  `third_prize` varchar(9) DEFAULT NULL,
  `fourth_prize` int(11) DEFAULT NULL,
  `fifth_prize` int(11) DEFAULT NULL,
  `sixth_prize` int(11) DEFAULT NULL,
  `seventh_prize` int(11) DEFAULT NULL,
  `eigth_prize` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

这是插入值的查询

INSERT INTO `result` (`id`, `l_id`, `lname`, `first_prize`, `consolation_prize`, `second_prize`, `third_prize`, `fourth_prize`, `fifth_prize`, `sixth_prize`, `seventh_prize`, `eigth_prize`) VALUES
(1, '1', 'Win-Win', 'WO-878475', 'WO-878474', 'WO-878477', 'WO-878455', 8474, 8477, 8412, 8473, 8689),
(2, '2', 'KARUNNYA', NULL, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL),
(3, '3', 'SOUBHAGYA', 'WE-878656', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(4, '4', 'SREE SAKTHI', 'NB-750180', 'NE-750180', 'KO-594630', 'KF-678534', 6786, 4356, 2456, 4566, 7657);

问题是,我不能在任何列中插入多个值,如一等奖、二等奖、三等奖等。。。如何做到这一点,请帮助我,我不知道,我是新的所有这些。

lnvxswe2

lnvxswe21#

mysql是一个关系数据库。我建议你用两张table。第一个 event 将包含事件数据( id 以及 name 第二种结构如下:

`event_id` varchar(25) NOT NULL,
  `winner` varchar(9) NOT NULL,
  `prize_type` int(11) NOT NULL,

然后您可以定义密钥,例如:

0 = consolation prize
1 = first prize
2 = second prize
etc..
2guxujil

2guxujil2#

我建议你用“2”,我回答的最后一个选项。
我需要输入两个不同的值(即,wo-878475,we-878475)在一栏一等奖
要直接回答您的问题,可以在值之间使用分隔符(例如|或逗号),然后在选择基于分隔符拆分的字段数据时使用分隔符。这是99%的时候一个糟糕的设计方法,真的。
我真诚地建议您考虑稍微重新设计,并执行以下任一操作:
1)
添加更多字段,例如 first_prize_1 以及 first_prize_2 . 这可能不是最好的方法,但我不知道你所有的设置-这将使维护问题,如果你需要另一个在未来,如 first_prize_3 ,但比单个字段中的多个值要好得多。
2)
这可能是更好的方法-做一张新table prizes 并具有以下字段:

id  
prize_id  
prize_level (this will be 1, 2, 3 etc for first prize and so on)  
competition_id

然后,只需为每个竞赛的每个奖品排一行,然后为竞赛id选择所有内容,这些字段允许您说明它是什么奖品,等等。
所以呢 id 字段是唯一行id的自动增量。然后行将如下所示: id = 1; prize_id =wo-878475; prize_level = 1; competition_id = 1; id = 2; prize_id =we-878475; prize_level = 1; competition_id = 1;
然后选择位置 competition_id =1,您将获得该比赛的所有可能奖品,奖品id和奖品级别(1、2等)。这样,根据上面的示例,您可以获得多个一等奖,并且由于行是无止境的,您可以根据每个比赛的需要获得任意多或任意少的奖品,因此不受表中的字段(如字段)的限制 first_prize , second_prize 等等)。

xggvc2p6

xggvc2p63#

在结果(id、l\U id、lname、一等奖、安慰奖、二等奖、三等奖、四等奖、五等奖、六等奖、七等奖、八等奖)中插入值(1,'1','win-win','wo-878475,wo-878474,wo-878477',null,null,'wo-878455',8474,8477,8412,8473,8689);
增加列的长度。

相关问题