我们需要在工作场所定期解决的问题是如何根据用户提供的表/列名称构建sql语句.我想解决的问题是列名之间的逗号.
一种技术看起来像这样.
selectSql = "SELECT "; for (z = 0; z < columns.size(); z++) { selectSql += columns[z]._name; selectSql += ", "; } selectSql = selectSql(0, selectSql.len() - 2); selectSql += "FROM some-table";
另一种技术看起来像这样
selectSql = "SELECT "; for (z = 0; z < columns.size(); z++) { selectSql += columns[z]._name; if (z < columns.size() - 1) selectSql += ", "; } selectSql += "FROM some-table";
我并不特别被这些实现中的任何一个所吸引.
我很有兴趣听到其他解决这个问题的方法的想法,着眼于使代码更容易阅读/理解/维护.
有哪些替代技术?
在您的情况下,可以安全地假设至少有一列,否则进行选择没有意义.在这种情况下,您可以这样做:
selectSql = "SELECT "; selectSql += columns[0]._name; for (z = 1; z < columns.size(); z++) { selectSql += ", "; selectSql += columns[z]._name; } selectSql += " FROM some-table";