Mapear e excluir questões randômicas no banco do Moodle para resolver backup e clone de quiz

Mapear e excluir questões randômicas no banco do Moodle para resolver backup e clone de quiz

por Lino Vaz Moniz -
Número de respostas: 0

Consultar questões randômica

SELECT * FROM mdl_question WHERE qtype='random'


Contar quantidade de questões randômicas

SELECT COUNT(id) FROM mdl_question WHERE qtype='random';


Contar quantidade de questões randômicas até uma determinada data

SELECT COUNT(id) FROM mdl_question WHERE qtype='random' AND timecreated <= ?;


Contar quantidade de questões randômicas por categoria de questões

SELECT COUNT(id),category FROM mdl_question WHERE qtype='random' GROUP BY category ORDER BY COUNT(id) DESC;


Apagar questões randômicas até uma determinada data

DELETE FROM mdl_question WHERE qtype='random' AND timecreated <= ?;

Mapear quantidade de questões randômicas não alocadas no questionários

SELECT COUNT(q.id) FROM mdl_question q LEFT JOIN mdl_quiz_slots s ON s.questionid=q.id WHERE q.qtype='random' AND s.questionid IS NULL;


Mapear quantidade de questões randômicas não alocadas no questionários com subconsulta

SELECT COUNT(q.id) FROM mdl_question q WHERE (SELECT COUNT(s.id) FROM mdl_quiz_slots s WHERE q.id=s.questionid) =0;


Mapear quantidade de questões randômicas alocadas no questionários

SELECT COUNT(q.id) FROM mdl_question q WHERE (SELECT COUNT(s.id) FROM mdl_quiz_slots s WHERE q.id=s.questionid) =1;


Limpar as questões randômicas não alocadas nos questionários. Isso resolve problema de erro de duplicação e backup de questionário

DELETE FROM mdl_question WHERE qtype='random' AND id NOT IN (SELECT questionid FROM mdl_quiz_slots) LIMIT 3000000;