Skip to content

Commit

Permalink
Issue #18310 - refactor DB update adding explicit 'AS'
Browse files Browse the repository at this point in the history
  • Loading branch information
kevin-foster-uk committed Dec 12, 2022
1 parent 9b475d9 commit 21f8c5f
Showing 1 changed file with 21 additions and 5 deletions.
26 changes: 21 additions & 5 deletions application/helpers/update/updates/Update_492.php
Expand Up @@ -9,20 +9,36 @@ public function up()
// Handle questions with random_order = 1
$this->db->createCommand(
"INSERT INTO {{question_attributes}} (qid, " . $this->db->quoteColumnName("attribute") . ", " . $this->db->quoteColumnName("value") . ")
SELECT qa.qid, 'answer_order' " . $this->db->quoteColumnName("attribute") . ", 'random' " . $this->db->quoteColumnName("value") . "
SELECT
qa.qid,
'answer_order' AS " . $this->db->quoteColumnName("attribute") . ",
'random' AS " . $this->db->quoteColumnName("value") . "
FROM {{question_attributes}} qa
JOIN {{questions}} q ON qa.qid = q.qid
WHERE " . $this->db->quoteColumnName("attribute") . " = 'random_order' AND " . $this->db->quoteColumnName("value") . " = '1' AND q.type IN ('!', 'L', 'O', 'R')"
WHERE
" . $this->db->quoteColumnName("attribute") . " = 'random_order'
AND " . $this->db->quoteColumnName("value") . " = '1'
AND q.type IN ('!', 'L', 'O', 'R')"
)->execute();

// Handle questions with alphasort = 1 and random_order = 0
$this->db->createCommand(
"INSERT INTO {{question_attributes}} (qid, " . $this->db->quoteColumnName("attribute") . ", " . $this->db->quoteColumnName("value") . ")
SELECT a.qid, 'answer_order' " . $this->db->quoteColumnName("attribute") . ", 'alphabetical' " . $this->db->quoteColumnName("value") . "
SELECT
a.qid,
'answer_order' AS " . $this->db->quoteColumnName("attribute") . ",
'alphabetical' AS " . $this->db->quoteColumnName("value") . "
FROM (
SELECT * FROM {{question_attributes}} WHERE " . $this->db->quoteColumnName("attribute") . " = 'alphasort' AND " . $this->db->quoteColumnName("value") . " = '1'
SELECT *
FROM {{question_attributes}}
WHERE " . $this->db->quoteColumnName("attribute") . " = 'alphasort'
AND " . $this->db->quoteColumnName("value") . " = '1'
) a LEFT JOIN (
SELECT qid, " . $this->db->quoteColumnName("value") . " random_order FROM {{question_attributes}} WHERE " . $this->db->quoteColumnName("attribute") . " = 'random_order'
SELECT
qid,
" . $this->db->quoteColumnName("value") . " AS random_order
FROM {{question_attributes}}
WHERE " . $this->db->quoteColumnName("attribute") . " = 'random_order'
) r ON a.qid = r.qid WHERE random_order = '0' OR random_order IS NULL"
)->execute();
}
Expand Down

0 comments on commit 21f8c5f

Please sign in to comment.