MySQL
ผมพบว่ามันค่อนข้างยากที่จะประสบความสำเร็จในช่วงของตัวเลขเป็นแถวใน
เช่นช่วงที่ 1-5 ทำได้โดย:
SELECT 1
UNION
SELECT 2
UNION
SELECT 3
UNION
SELECT 4
UNION
SELECT 5
จะส่งผลให้:
1 2 3 4 5
สำหรับ 0-99 ฉันสามารถข้ามเข้าร่วมสองตาราง 0-9:
CREATE TABLE nums as
SELECT 0 as num
UNION
SELECT 1
UNION
SELECT 2
UNION
SELECT 3
UNION
SELECT 4
UNION
SELECT 5
UNION
SELECT 6
UNION
SELECT 7
UNION
SELECT 8
UNION
SELECT 9
;
Select n.num*10+nums.num v
From nums n cross join nums
ฉันเบื่อที่จะเขียนสิ่งเหล่านี้ทั้งหมดUNION
และกำลังมองหาวิธีลดขนาดรหัส
มีแนวคิดใดบ้างที่จะนำมาใช้ (เช่นช่วง 0-1,000,000 ช่วง) ใน MySQL หรือไวยากรณ์ SQL ใด ๆ
มีการให้คะแนนพิเศษสำหรับ:
- คำสั่งเดียว
- ไม่มีขั้นตอน
- ไม่มีตัวแปร
- ไม่มีคำสั่ง DDL
- เฉพาะงบ DQL