SQL应该查询's ORDER BY列写入JS代码中

Should SQL query's ORDER BY columns be written in the JS code?

本文关键字:BY JS 代码 ORDER 查询 SQL      更新时间:2023-09-26

我正在用LIMITOFFSET对应用程序中的一些SQL查询结果进行分页,现在我想添加Javascript控件来对结果列表进行排序,从前端一直到SQL查询的ORDER BY

我应该在哪里编写将传递给SQL的ORDER BY的列进行排序?

它应该写在JS代码中吗?是否应该将通用字符串传递到服务器,然后转换为SQL的列名?


以下是一些代码来澄清问题:

获取JS:中显示的行的SQL查询

SELECT *
FROM MY_TABLE
ORDER BY :criteria
LIMIT :limit
OFFSET :offset

负责AJAX查询的JS代码:

function sortBy(selected) {
    $.ajax({
        url: "/super/link/to/controller/method?orderBy=" + selected.val(),
        type: 'GET',
        dataType: "HTML",
        success: function (data) {
            // Code here doing the list refresh with the data
        }
    });
}

orderBy下的参数将添加到名为criteria的SQL查询中。服务器可以对其进行操作以匹配SQL表列的名称,但这真的是一种好的做法吗?

我看不出这有什么内在的问题。基于您可能使用的不同ORM解决方案,可能还有其他/更好的选项,但根据您提供的信息,只要您保护应用程序不受SQL注入的影响,这个解决方案看起来就很好。