Ý tưởng tôi muốn chia sẻ không phải là một sự tái xuất chính xác sponse cho câu hỏi nhưng có thể hữu ích cho một số vì vậy tôi muốn chia sẻ nó.
Nếu bạn thường xuyên chỉ cần một số lượng giới hạn các số thì có thể có lợi khi tạo bảng với các số bạn có thể cần và chỉ cần sử dụng bảng đó mỗi lần. Ví dụ:
CREATE TABLE _numbers (num int);
INSERT _numbers VALUES (0), (1), (2), (3), ...;
Chỉ có thể áp dụng nếu bạn cần số dưới giới hạn hợp lý nhất định, do đó, không sử dụng số này để tạo chuỗi 1 ... 1 triệu nhưng có thể dùng cho số 1 ... 10k, ví dụ.
Nếu bạn có danh sách các số trong bảng _numbers
sau đó bạn có thể viết các truy vấn như thế này, để đạt được các đặc điểm cá nhân của một chuỗi:
SELECT number, substr(name, num, 1)
FROM users
JOIN _numbers ON num < length(name)
WHERE user_id = 1234
ORDER BY num;
Nếu bạn cần số lượng lớn hơn 10k sau đó bạn có thể tham gia bảng cho chính nó:
SELECT n1.num * 10000 + n2.num
FROM _numbers n1
JOIN _numbers n2
WHERE n1 < 100
ORDER BY n1.num * 10000 + n2.num; -- or just ORDER BY 1 meaning the first column
Nguồn
2018-02-14 23:43:04
Bạn có muốn thêm bản ghi này vào các bản ghi hiện có hoặc một bảng hoàn toàn mới không? – Sklivvz
Đây sẽ là reccords mới. – nicudotro
Tại sao bạn không thể sử dụng cột auto_increment? – Rob