我认为这不可能,但我想我还是会问。
我有一个MySql 5. +查询......
SELECT p.*, u.* FROM princess p JOIN unicorn u ON p.id = u.princess_id
能够把所有的公主和独角兽都归还给我了。)问题是返回的结果集可能包含重复的列名(不好)。如果两个表都有一个名为name
的列,那么如何在不明确编码p.name as 'princess_name'
和u.name as 'unicorn_name'
等别名的情况下对其进行区分?
另外,我不能使用列索引,所以如果没有更好的方法,我只需自己编写所有别名代码。
答案 0 :(得分:4)
SELECT *
有几个原因是个坏主意,其中一个原因就是你刚才找到的。使用显式列列表并创建自己的别名。
答案 1 :(得分:1)
您必须亲自手动编写所有别名代码。 ;)无论如何,摆脱那些*
并不是一件坏事。
答案 2 :(得分:1)
这是不可能的,并且还尝试避免在SQL中使用*
。
这是一个坏习惯。编写所有字段对于可读性和性能更好,不要忘记!
答案 3 :(得分:0)
您必须手动编码别名。 这很好。明确提及所有列名称总是一个好主意。
答案 4 :(得分:0)
如果您将行作为数组获取,则可以依赖于数据的顺序。如果你把它们作为地图/字典取出......你可能运气不好。实际上,混叠是一个更好的主意。
PS。明星选择是不好的形式。
答案 5 :(得分:0)
String query1 =“SHOW COLUMNS FROM uploadfile LIKE'”+ label +“'”; ResultSet rs = st.executeQuery(query1);
while(rs.next())
{
// int rs = 0;
pw.println("<script>alert(' throw new DuplicateName()')</script>");
pw.write("Error in file insertion"+rs);
response.sendRedirect("AddAttribute.jsp?status='Error'");
}
String query ="ALTER TABLE uploadfile ADD "+label+" varchar (10)";
System.out.println("welcome in java ");
int rs1=st.executeUpdate(query);
response.sendRedirect("afterlabel_updatefile.jsp?status='success'");
// response.sendRedirect("AdminHome.jsp");