我有一个自动生成的SQL数据库。
我不知道字段的名称,也不知道字段的值;我只知道需要得到哪个寄存器,以及该寄存器的字段数。
例如,如果需要获取数据库表“Table1”的第二个寄存器的第五个字段,应该执行哪个SQL查询?
最佳答案
数据库中表中的行在形式上是无序的,尽管它们当然是按某种顺序存储的。在SQL中,不能按位置引用表中的列;必须知道列的名称。
由于您知道表名,因此可以查询系统目录以了解表中的列,从而了解表中的第二个列名(假设它不是一个单列表)。
但是,如果您不知道表的模式,那么在查询数据时就不能做任何有意义的事情。您必须知道列的含义,才能知道查询将要执行的操作。
很明显,您可以在表上运行一些查询(一旦您知道您要查找的列名),然后收集两行数据;第二行是您要查找的数据。
...
如果数据库访问语言返回数组中每一行的值(如Perl、DBI、PHP或。。。
SELECT * FROM Table1;
这将收集所有数据(包括第5列,假设有许多列),您的
fetch
操作可能会将*
表示的值返回到数组中,然后您可以查看数组第五个元素中的值,以便第二行看到数据。在许多SQL DBMS中(我不知道具体的MySQL),您甚至可以使用过时的符号按第五列排序:SELECT * FROM Table1 ORDER BY 5;
这里的5是指结果集中的第五列,如果这是从一个表中选择所有列,则表示该表的第五列。
然而,从长远来看,像这样瞎跑是一个荒谬的提议。您必须了解模式及其解释,才能合理地使用数据库。
关于mysql - 如何获取表的第二个寄存器的第五个字段?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9180572/