如何在SQL中检索具有特定数量的不同列值的行?

时间:2018-08-27 10:37:02

标签: mysql sql

我正在实施考试门户。我有老师和学生作为用户。

教师为特定主题生成题集以进行考试。根据考试的满分,他有4种选择(20分,50分,80分和100分),并且在选择分数时的持续时间也固定为30分钟,60分钟,90分钟和120分钟。

我有一个问题表。该字段具有问题,答案和级别(轻松,中等,困难)的字段。简易问题1分,中级问题2分和硬级问题3分。

老师可以将任意数量的问题添加到集合中。问题将从数据库中随机获取。每个学生还应在20分中获得6个简单,4个中级和2个硬水平的问题,即按照水平标准随机抽取总共12个问题。同样,对于50个标记集,必须提取15个EASY级别,10个MEDIUM级别和3个HARD级别的问题,依此类推。

请避免您认为必须存在的所有其他条件,并帮助我形成mysql查询,或者只是为我提供有关应使用什么sql子句的一些提示。

2 个答案:

答案 0 :(得分:1)

在第一次查询时,我还会额外使用两次union select,以便每个选择都可以按问题级别进行设置。

答案 1 :(得分:-1)

仅从标题来看,我猜你正在寻找

<script>


    // [ ADDED ]
  function updateCategoryFilters(category) {
    // Reset visiblitiy of all fields
    for(const node of document.querySelectorAll('#custom_fields .custom-field-cat')) {
      node.style.display = "none";
    }

    if(category) {

      category = category.toLowerCase()

      // If category is valid, set visiblitiy of fields for that category
      for(const node of document.querySelectorAll('#custom_fields .custom-field-cat-' + category)) {
        node.style.display = ""; // [ UPDATED ]
      }
    }


  }

  var mainCat = document.getElementById("main_cat")

  // When the user changes the main_cat select, check it's value. If
  // value == "-1" then hide custom_fields. Otherwise display custom
  // fields as inline
  mainCat.addEventListener("change", function() {

    // [ UPDATED ]
    updateCategoryFilters(mainCat.value)
  })

  //[ADDED]

  // Extract category from current url
  const category = location.pathname
  .split('/') // Break pathname to array of strings, split by '/' characters
  .filter(function(item) { return !!item; }) // Remove any empty strings from array
  .splice(-1); // Get last string (your category) from array

  // [ UPDATED ]
  // Update value of select element to current category
  updateCategoryFilters(category);

  // [ UPDATED ]
  document.getElementById("main_cat").value = category;

</script>