4

有没有办法做类似的事情:

SELECT * FROM TABLE WHERE COLUMN_NUMBER = 1;

?

4

4 回答 4

3

不,你不能。列顺序在 MySQL 中并不重要。有关详细信息,请参阅以下问题。

mysql - 从给定列号的表中选择值

于 2013-07-13T02:52:38.833 回答
1

如果您的表有一个名为的列COLUMN_NUMBER,并且您想从该列包含值“1”的表中检索行,那么该查询应该可以解决问题。

我怀疑您正在尝试做的是使用别名引用选择列表中的表达式。这不受支持。WHERE 子句中引用列的表达式必须按名称引用列。

我们可以使用内联视图玩一些技巧,为表达式赋予别名,但这在 WHERE 谓词方面效率不高,因为 MySQL 实现派生表的方式。并且,在这种情况下,它是内联视图中必须在外部查询中引用的列的名称。

于 2013-07-13T02:54:38.663 回答
0

我是怎么做到的:

我正在尝试column number 4sometable.

set @mydb=(SELECT DATABASE());
set @mycol=(select COLUMN_NAME from information_schema.columns where
         table_schema=@mydb and table_name='sometable' and ordinal_position = 4);
SELECT Date,@mycol FROM sometable ORDER BY Date DESC LIMIT 3;

当然,如果数据库名称 是已知的,第一行可以被鞭打并@mydb替换为真实的数据库名称。

于 2019-07-12T06:03:55.393 回答
-1

你可以做到这一点

例子:

$query="select * from employee";

$result=mysql_query($query);

$meta=mysql_fetch_field($result,0)  // 0 is first field in table  , 1 is second one ,,, etc

$theNameofFirstField=$meta->name;    // this well return first  field name in table


// now you can use it in other query

$seconQuery="select $theNameofFirstField from employee";
于 2014-01-01T12:04:16.363 回答