Heim >Datenbank >MySQL-Tutorial >MySQL (非存储过程)解决易语言难题

MySQL (非存储过程)解决易语言难题

WBOY
WBOYOriginal
2016-06-07 14:56:561443Durchsuche

很多人用不同的东西来解决易语言难题,咱也凑个热闹。如果用存储过程的话,和一般的编程语言也就雷同了,这里就用SQL的思想,在MySQL中实现一次。 MySQL drop table if exists n1;create temporary table n1(num int (1));insert into n1 values(1), (2), (3)

很多人用不同的东西来解决易语言难题,咱也凑个热闹。如果用存储过程的话,和一般的编程语言也就雷同了,这里就用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 n2
select * from n1;

drop table if exists n3;
create temporary table n3
select * from n1;

drop table if exists nums1;
create temporary table nums1
select n1.num * 100 + n2.num * 10 + n3.num as num
from n1 left join n2
on n1.num <> n2.num
left join n3
on n1.num <> n3.num and n2.num <> n3.num;

drop table if exists nums2;
create temporary table nums2
select * from nums1; 

drop table if exists nums3;
create temporary table nums3
select * from nums1;

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, "]");

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)
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:DENSE_RANK分析函数的使用Nächster Artikel:SQL Server C2 审核模式