Вот мой запрос MySQL.
SELECT * FROM myschool.term_reports
where class = 4 and term = 2 and year = 2018 and studentid = '19' or subject_id = 31
order by score
limit 6;
Теперь результат не включает subject_id 31, потому что оценка не входит в число лучших 6 предметов. Однако subject_id 31 является ключевым предметом, и он должен быть включен в список лучших. 6. Как я могу добавить его к результату?
Попробуйте это. Пожалуйста, дайте мне знать, если какая-либо проблема, поскольку я не тестировал
SELECT * FROM myschool.term_reports
WHERE class = 4
AND term = 2
AND year = 2018
AND studentid = '19'
OR subject_id = 31
ORDER BY CASE WHEN subject_id = 31 THEN 0 ELSE score END limit 6;
Попробуйте это. Пожалуйста, дайте мне знать, если какая-либо проблема, поскольку я не тестировал
SELECT * FROM myschool.term_reports
where class = 4 and term = 2 and year = 2018 and studentid = '19' and subjectid=31
union
SELECT * FROM myschool.term_reports
where class = 4 and term = 2 and year = 2018 and studentid = '19'
order by score
limit 5;
best 6 subjects
?AND
иOR