读书人

求句mysql多谢

发布时间: 2012-02-27 10:00:22 作者: rapoo

求句mysql,谢谢
示例表truck:
id------start-----end------price
1-------上海------北京------111
2-------上海------南京------222
3-------香港------深圳------333
4-------北京------上海------444

需求:
为所有没有反向数据记录,添加反向的记录,地名对调,价格不变。
不用非要一句语句完成,也可以是脚本

比如:
“1-------上海------北京------111”拥有反向数据,“4-------北京------上海------444”就不做新增
“2-------上海------南京------222”没有反向数据,就新增一条数据:“id自增-------南京------上海------222”



[解决办法]

SQL code
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; 

读书人网 >Mysql

热点推荐