我正在使用LIMIT
和OFFSET
在我的应用程序中分页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表列的名称,但这真的是一个好习惯吗?
答案 0 :(得分:2)
我没有看到任何内在错误。根据您可能使用的不同ORM解决方案,可能还有其他/更好的选项,但考虑到您提供的信息,只要您保护应用程序免受SQL注入,此解决方案就会很好。