Để sử dụng các biến để đại diện cho các cột (hoặc bảng), bạn cần sử dụng PREPARE / EXECUTE. Hãy thử một cái gì đó như sau:
SET @colindex1=(CONCAT(i, @indent);
SET @stmt = 'SELECT @colindex1 FROM tableindex WHERE main=19';
PREPARE thestmt FROM @stmt;
EXECUTE thestmt;