很多人用不同的东西来解决易语言难题,咱也凑个热闹。如果用存储过程的话,和一般的编程语言也就雷同了,这里就用sql的思想,在mysql中实现一次。
mysql drop table if exists n1;create temporary table n1(num int (1));insert into n1 values(1), (2), (3), (4), (5), (6), (7), (8), (9);drop table if exists n2;create temporary table n2select * from n1;drop table if exists n3;create temporary table n3select * from n1;drop table if exists nums1;create temporary table nums1select n1.num * 100 + n2.num * 10 + n3.num as numfrom n1 left join n2on n1.num n2.numleft join n3on n1.num n3.num and n2.num n3.num;drop table if exists nums2;create temporary table nums2select * from nums1; drop table if exists nums3;create temporary table nums3select * from nums1;select *from nums1 as n1 left join nums2 as n2on n1.num n2.numleft join nums3 as n3on n1.num n3.num and n2.num n3.numwhere n1.num * 2 = n2.num and n1.num * 3 = n3.numand n1.num not rlike concat([, n2.num, ])and n1.num not rlike concat([, n3.num, ])and n2.num not rlike concat([, n3.num, ]);drop table if exists n1;drop table if exists n2;drop table if exists n3;drop table if exists nums1;drop table if exists nums2;drop table if exists nums3;结果:mysql> select * -> from nums1 as n1 left join nums2 as n2 -> on n1.num n2.num -> left join nums3 as n3 -> on n1.num n3.num and n2.num n3.num -> where n1.num * 2 = n2.num and n1.num * 3 = n3.num -> and n1.num not rlike concat([, n2.num, ]) -> and n1.num not rlike concat([, n3.num, ]) -> and n2.num not rlike concat([, n3.num, ]);+------+------+------+| num | num | num |+------+------+------+| 192 | 384 | 576 || 219 | 438 | 657 || 273 | 546 | 819 || 327 | 654 | 981 |+------+------+------+4 rows in set (0.03 sec)
