搜索每个列与目标范围匹配的行(整数)

时间:2016-03-15 06:38:03

标签: mysql sql algorithm match

我有一个像以下

的SQL表
-----------------------------------
|id | price | A | B | C | ... | Z |
-----------------------------------

A-Z的每列具有值b / t 0-99

我希望搜索与目标值范围匹配的所有行。

例如。 target(A:62,B:14,.. Z:99),找到其对应值大于或等于目标值的每一行。

所以查询将类似于

select id, MAX(price) where A >= user.a AND B>=user.b And.. AND Z >= user.z

我的问题是如何优化它。

如果我将桌子分成几块并进行嵌套查询,它会更快吗?还是有一些我应该使用的技术?

编辑:我确实索引了我的所有属性列,(因为更新表格不是我的businese)而且,我实际上添加了2列,第1列是sum:所有列的总和;第二个是max_num:所有列的最大数量。然后在这两个数字上创建一个针对目标基础的视图,然后执行搜索。

提前谢谢大家!

感谢您帮助我将它们放入代码样式文本中!

1 个答案:

答案 0 :(得分:0)

创建一些索引可能会加快查询速度。

像:

<!DOCTYPE html>
<html lang="en" class=" js no-touch rgba hsla backgroundsize cssanimations csstransforms csstransforms3d csstransitions fontface generatedcontent svg inlinesvg svgclippaths boxsizing lastchild js no-touch rgba hsla backgroundsize cssanimations csstransforms csstransforms3d csstransitions fontface generatedcontent svg inlinesvg svgclippaths boxsizing lastchild js no-touch rgba hsla backgroundsize cssanimations csstransforms csstransforms3d csstransitions fontface generatedcontent svg inlinesvg svgclippaths boxsizing lastchild">

<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=IE7">
<title>A Bootstrap Project</title>

 <!-- bootbox -->
<!--
  <script src="js/bootbox/bootstrap.min.js"></script>
  <script src="js/bootbox/bootbox.min.js"></script>
-->
<link href="treegrid/bootstrap-2.3.2/css/bootstrap.css" rel="stylesheet"> 
<link   rel="stylesheet" href="js/bootbox/bootstrap.min.css">

<!--Favicon -->
<link rel="shortcut icon" href="favicon.ico">
<!-- Style -->
<link rel="stylesheet" href="css/style.css">
<link rel="stylesheet" href="css/navigation.css">
<link rel="stylesheet" href="css/customize.css">
<!--[if lt IE 9]>
  <link rel="stylesheet" type="text/css" href="stylesheets/ie_lt9.css" />
<![endif]-->
<!--[if !IE]><!-->
  <link rel="stylesheet" type="text/css" href="css/ie_not.css">
<!--<![endif]-->
<script src="js/jquery.min.js"></script>
<script src="js/modernizr.custom.js"></script>
<script src="js/modernizr.js"></script>
<script src="js/highlight.pack.js"></script> <!-- syntax highlighting -->
<script src="js/fastclick.js"></script> <!-- remove 300ms delay on tap -->
<script src="js/pagify.js"></script><!-- dynamic page loading -->
<script src="js/jquery.ba-hashchange.min.js"></script> <!-- monitor hashchanges -->
<script src="js/jquery.tooltipster.min.js"></script> <!-- tooltips -->
<script src="js/jquery-ui.widget.min.js"></script> <!-- for selective tables -->
<script src="js/select2.js"></script> <!-- select2 -->
<script src="js/scripts.js"></script> <!-- all custom scripts -->
<script src="js/screenshot.js"></script> <!-- all custom scripts -->

<script src="js/utils.js"> </script>
<script src="js/model.js"> </script>
<script src="js/render.js"> </script>
<script src="js/reports.js"> </script>
<script src="js/comments.js"> </script>
<script src="js/settings.js"> </script>
<script src="js/jobs.js"> </script>

<!-- auto complete -->

<script src="js/autocomplete/jquery-1.7.1.min.js"></script>
<script src="js/autocomplete/jquery.ui.core.min.js"></script>
<script src="js/autocomplete/jquery.ui.widget.min.js"></script>
<script src="js/autocomplete/jquery.ui.position.min.js"></script>
<script src="js/autocomplete/jquery.ui.autocomplete.min.js"></script>

<link rel="stylesheet" href="js/autocomplete/jquery-ui-1.8.16.custom.css"/>



<!-- date Picker -->
<!--  <script src="datepicker/jquery.min.js"></script>  -->
  <script src="datepicker/jquery.plugin.js"></script>
  <script src="datepicker/jquery.datepick.js"></script>
  <link   rel="stylesheet" href="datepicker/jquery.datepick.css">

<!-- Boot Box -->

  <script src="js/bootbox/bootstrap.min.js"></script>
  <script src="js/bootbox/bootbox.min.js"></script>


<!---  Tree Grid -->
<link rel="stylesheet" href="treegrid/css/jquery.treegrid.css">
<script type="text/javascript" src="treegrid/js/jquery.treegrid.js"></script>
<script type="text/javascript" src="treegrid/js/jquery.treegrid.bootstrap2.js"></script>

<!--
  <link   rel="stylesheet" href="js/bootbox/bootstrap.min.css">
-->
<!--
<link rel="stylesheet" href="datepicker/jquery-ui.css">
<script src="datepicker/jquery-1.10.2.js"></script>
<script src="datepicker/jquery-ui.js"></script>
-->

<!--
<link rel="stylesheet" href="datepicker/style.css">
-->

<link href="fileupload/uploadfile.min.css" rel="stylesheet">
<script src="fileupload/jquery.uploadfile.min.js"></script>

<script type="text/javascript" >

$(document).click(function() {
  $("#globalwarningdiv").removeClass("visible");
  $("#globalinfodiv").removeClass("visible");
});

$(document).keypress(function(e) {
  $("#globalwarningdiv").removeClass("visible");
  $("#globalinfodiv").removeClass("visible");
});

$("#globalwarningdiv").click(function(e) {
  e.stopPropagation();
});

$("#globalinfodiv").click(function(e) {
  e.stopPropagation();
});

$(document).ready( function() {

   myModel.getAllData();

});

</script>
</head>

<body>

<div class="content_wrapper">

  <div class="logo"><a href=""><img src="images/logo.png"></a></div>
      <div id='login-menu' style='display:block;' >
<!--
        <div class="mobile_menu_toggle"><a class="icon_arrow_down" href="#">Menu</a></div>
                <ul class="sidenav">
                <li class="" id="menu-login"> <a href="Javascript: renderHtml.renderLoginPage(); ">Log-in</a> </li>
        </ul>
-->

      </div>

<!--
      <div id='logout-menu' style='display:none;' >
        <div class="mobile_menu_toggle"><a class="icon_arrow_down" href="#">Menu</a></div>
                <ul class="sidenav">
                <li class="" id="menu-login"> <a href="Javascript: renderHtml.verifyDepartment(); ">Log-in</a> </li>
        </ul>
      </div>

-->


 </div>

    <div class="content" style="display:block;">
        <div id="page_holder" style="display: block;">
            <h3> Welcome. </h3>
    <!--    <script src="js/components.js"></script> -->
         </div> 
    </div>
  </div>

</div>

</body>

</html>