SQL查询的ORDER BY列是否应该用JS代码编写?

时间:2016-04-18 14:34:28

标签: javascript mysql ajax

我正在使用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表列的名称,但这真的是一个好习惯吗?

1 个答案:

答案 0 :(得分:2)

我没有看到任何内在错误。根据您可能使用的不同ORM解决方案,可能还有其他/更好的选项,但考虑到您提供的信息,只要您保护应用程序免受SQL注入,此解决方案就会很好。