这是我对表
创建的查询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);
问题是,我无法向任何列插入多个值,例如first_prize,second_prize,third_prize等... 怎么做,请帮助我,我不知道,我是所有这些新手。
答案 0 :(得分:0)
INSERT INTO结果(id,l_id,lname,first_prize,consolation_prize,second_prize,third_prize,fourth_prize,fifth_prize,third_prize,seventh_prize,eigth_prize) VALUES(1,'1','Win-Win','WO-878475,WO-878474,WO-878477',NULL,NULL,'WO-878455',8474,8477,8412,8473,8689); < / p>
增加列的长度。
答案 1 :(得分:0)
我建议你使用“2”,这是我答案中的最后一个选项。
我需要在first_prize列中输入两个不同的值(即WO-878475,WE-878475)
要直接回答您的问题,您可以在值之间设置分隔符(例如|或逗号),然后在根据分隔符选择分割的字段数据时。这是一个糟糕的设计方法的99%,它确实是。
我真诚地建议您考虑进行轻微的重新设计并执行以下任一操作:
的 1)强>
添加更多字段,例如first_prize_1
和first_prize_2
。这可能不是最好的方法,但我不知道您的所有设置 - 如果您将来需要另一个设置,这将导致维护问题,例如first_prize_3
,但比单个字段中的多个值好很多
<强> 2)强>
这可能是更好的方法 - 创建一个新表prizes
并拥有字段:
id
prize_id
prize_level (this will be 1, 2, 3 etc for first prize and so on)
competition_id
然后每场比赛每个奖项只有一行,并为competition_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的地方,你可以获得所有可能的比赛奖品,包括prize_id和prize_levels(第1名,第2名等)。这样,按照上面的例子,你可以获得一个以上的一等奖,并且随着行数无穷无尽,你可以根据自己的竞争要求获得尽可能多的奖品,因此不受表格中的字段限制(如字段first_prize
,second_prize
等)。
答案 2 :(得分:0)
MySQL是一个关系数据库。我建议你用两张桌子。
第一个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..