求句mysql,谢谢
示例表truck:
id------start-----end------price
1-------上海------北京------111
2-------上海------南京------222
3-------香港------深圳------333
4-------北京------上海------444
需求:
为所有没有反向数据记录,添加反向的记录,地名对调,价格不变。
不用非要一句语句完成,也可以是脚本
比如:
“1-------上海------北京------111”拥有反向数据,“4-------北京------上海------444”就不做新增
“2-------上海------南京------222”没有反向数据,就新增一条数据:“id自增-------南京------上海------222”
[解决办法]
CREATE PROCEDURE addCity6()BEGIN DECLARE done INT DEFAULT FALSE; DECLARE S_START CHAR(20); DECLARE S_END CHAR(20); DECLARE PRICE INT; DECLARE CUR CURSOR FOR SELECT start,price,end FROM truck WHERE id NOT IN ( select a.id from truck a, truck b where a.start=b.end and a.end = b.start); DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1; OPEN CUR; REPEAT FETCH CUR INTO S_START,PRICE,S_END; IF NOT done THEN INSERT INTO truck(start,price,end)VALUES(S_END,PRICE,S_START); COMMIT; END IF; UNTIL done END REPEAT; CLOSE CUR;END;