有两个表,第一个是country_sports
,其中列country_id
,country_name
,sports_id
和date
。第二个是sports
,列sports_id
,sports_name
,sports_date
。
当我通过提供sports_name
在网络应用中发布表单并选择体育列表时,我想创建一个插入语句,选择sports_name
并获取运动ID的列表并放置它进入第一个表'country_sports'。
在这里,sports_id
应该有多个ID。
例如,
insert into country_sports (country_id, country_name, sports_id, date)
values ('', '', '', curdate());
例如,数据结构应为
('1', 'germany', '1, 2, 3, 4', 12-02-2017);
答案 0 :(得分:0)
试试这个:
如果sports_id不是NULL那么
BEGIN
SET @sportsID_list = CONCAT('''',REPLACE(REPLACE(sportsID,' ',''),',',QUOTE(',')),'''');
SET @ sportsID_stub = REPLACE(@sportsID_list,',','');
SET @ sportsID_array_count = LENGTH(@sportsID_list) - LENGTH(@sportsID_stub) + 1;
SET @x = 0;
WHILE @x < @ sportsID_array_count DO
SET @x = @x + 1;
SET @sqlv = CONCAT('SELECT ELT(',@x,',',@ sportsID_list,') INTO @sportidobj');
PREPARE v FROM @sqlv; EXECUTE v; DEALLOCATE PREPARE v;
SET @sqliv = CONCAT('INSERT INTO table_name (`Id`,`sportId`)VALUES (',@countryId,',',@ sportidobj',')');
PREPARE spv FROM @sqliv; EXECUTE spv; DEALLOCATE PREPARE spv;
END WHILE;
END;
END IF;
这是动态sql查询,用于插入与一条记录绑定的多个记录。 根据需要替换字段和表名。