MySQL是否保证像
这样的查询SELECT * from mytable
将完全按照与
相同的顺序输出其字段DESCRIBE mytable
呢?
我们有一条规则,即所有表的第一列始终是PRIMARY KEY,虽然依靠select *
中的列顺序并不总是一个好主意,但它可能是非常有帮助,以确保提供的第一个字段是PK。
这是MySQL特定的问题,因此不会与下面给出的链接重复。
答案 0 :(得分:3)
答案是否定的,mysql不保证select *
中的列与describe tablename
输出中的列的顺序相同。在任何一种情况下,Mysql文档都没有指定列的顺序。但是,这两个语句都可能按其序号位置列出列,因此实际上输出应该匹配。
但即使两种情况下字段的顺序相同,这也不意味着首先列出了pk字段。您可以在任何列上定义pk,而不仅仅是最左边的列。