Jauh di bawah MySQL 8 CTE halaman manual
adalah contoh yang menunjukkan masalah yang Anda alami. Pada dasarnya masalahnya adalah ids
your Anda kolom terlalu sempit untuk ABC
nilai yang diberikan padanya karena mendapat lebarnya dari bagian non-rekursif dari CTE (yang secara efektif merupakan panjang ids
yaitu 2 karakter). Anda dapat memecahkan masalah itu dengan CAST
dengan lebar yang cukup besar agar sesuai dengan semua hasil misalnya:
with recursive cte(greatest_id, ids, total) as (
select id,
CAST(id AS CHAR(5)) AS ids,
val
from tbl
union all
select tbl.id,
concat(cte.ids, tbl.id),
cte.total + tbl.val
from cte
inner join tbl
on tbl.id > cte.greatest_id
and cte.total + tbl.val <= 6
)
select ids, total from cte