这是我对创建表的查询
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);
问题是,我不能在任何列中插入多个值,如一等奖、二等奖、三等奖等。。。如何做到这一点,请帮助我,我不知道,我是新的所有这些。
3条答案
按热度按时间lnvxswe21#
mysql是一个关系数据库。我建议你用两张table。第一个
event
将包含事件数据(id
以及name
第二种结构如下:然后您可以定义密钥,例如:
2guxujil2#
我建议你用“2”,我回答的最后一个选项。
我需要输入两个不同的值(即,wo-878475,we-878475)在一栏一等奖
要直接回答您的问题,可以在值之间使用分隔符(例如|或逗号),然后在选择基于分隔符拆分的字段数据时使用分隔符。这是99%的时候一个糟糕的设计方法,真的。
我真诚地建议您考虑稍微重新设计,并执行以下任一操作:
1)
添加更多字段,例如
first_prize_1
以及first_prize_2
. 这可能不是最好的方法,但我不知道你所有的设置-这将使维护问题,如果你需要另一个在未来,如first_prize_3
,但比单个字段中的多个值要好得多。2)
这可能是更好的方法-做一张新table
prizes
并具有以下字段:然后,只需为每个竞赛的每个奖品排一行,然后为竞赛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
等等)。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);
增加列的长度。