-- 方法二 ,可读性强,性能好
SET @P_sushu = 10000;
SELECT *
FROM dsp_ad_center.`dim_num` AS t
WHERE NOT EXISTS ( SELECT *
FROM dsp_ad_center.`dim_num` AS a
WHERE t.n > a.n
AND MOD(t.n,a.n) = 0
AND a.n > 1
AND a.n <= @P_sushu
AND t.n <= @P_sushu )
AND t.n <= @P_sushu
LIMIT 10000;
-- 方法一 ,可读性弱,性能弱
SET @P_sushu = 10000;
SELECT t.n
FROM
LEFT JOIN ( SELECT DISTINCT a.n
FROM dsp_ad_center.`dim_num` AS a
CROSS JOIN dsp_ad_center.`dim_num` AS b
WHERE a.n <= @P_sushu
AND b.n <= @P_sushu
AND MOD(a.n,2) <> 0
AND MOD(b.n,2) <> 0
AND b.n <= a.n
AND MOD(a.n , b.n) = 0
AND b.n <> 1
AND b.n <> a.n
) tt ON t.n = tt.n
WHERE tt.n IS NULL
AND t.n <= @P_sushu
AND MOD(t.n,2) <> 0
;
用sql代码集合方式挑选质数、素数
最新推荐文章于 2024-02-01 08:00:00 发布