javascript - 优化结果页优先查询结果条数

标签 javascript mysql angularjs node.js express

这是我的代码。但我在加载超过 1000 行的结果时遇到一些问题。

如何更改代码以检查首先创建分页的查询结果数。然后,只得到分页页面的结果?

function showResult(req, res){

    var n = req.query.query;
    mysql_conn.query('SELECT query_text FROM catalogsearch_query WHERE query_text LIKE "%' + n + '%" ORDER BY popularity DESC LIMIT 0 , 10', function (error, rows) {
        mysql_crawl.query('SELECT prod_name, full_price, discount_price, quantity, fulltext_id,prod_link, images, prod_desc, status, web_name,web_logo FROM `catalogsearch_fulltext` WHERE MATCH(data_index) AGAINST("'+n+'") ', function(error, product_data) {

            var totalItems = product_data.length, itemts=product_data;

    //set default variables
    var totalResult = totalItems,
        pageSize = 10,
        pageCount = Math.floor(totalResult / pageSize)
        currentPage = 1


    //set current page if specifed as get variable (eg: /?page=2)
    if (typeof req.query.page !== 'undefined') {
        currentPage = +req.query.page;
    }

    //render index.ejs view file
            res.render('result.html', {result: n, 
            related: rows.map(row => row.query_text), 
            page_num: p,
            product_data: product_data,
            totalItems: totalItems,
            pageSize: pageSize,
            pageCount: pageCount,
            currentPage: currentPage})
        });
    });
}

最佳答案

首先获得结果的总行数

从表中选择 COUNT(*),其中 1 = 1;

第二个是获取行结果但受 ex 限制的查询。 10 偏移量首先从零开始

SELECT * FROM 表 WHERE 1 = 1 LIMIT 10, 0;

这意味着结果将从 0 开始,然后对于下一页,您应该添加 10 作为偏移量

SELECT * FROM 表 WHERE 1 = 1 LIMIT 10, 10;

所以它从 10 开始到 20

关于javascript - 优化结果页优先查询结果条数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43889816/

相关文章:

javascript - ajax 按顺序加载 2 个 XML 文档,无需异步 :false

mysql - 使用 sum select 连接 mySQL 表

angularjs - 我的 AngularJS 应用程序的谷歌索引

javascript - 如何在 Angular 中启用 PouchDB 调试

javascript - Mocha, Chai - 循环测试

javascript - 如何自动分析我页面的 JavaScript?

php - 使用时间戳和时区

javascript - 仅搜索 ui.bootstrap typeahead 中的特定字段

javascript - 如何在客户端禁用 asp.net 验证器?

mysql - 如何将数据集设置为行