有没有办法做类似的事情:
SELECT * FROM TABLE WHERE COLUMN_NUMBER = 1;
答案 0 :(得分:3)
答案 1 :(得分:1)
如果您的表有一个名为COLUMN_NUMBER
的列,并且您希望从该列中包含值为“1”的表中检索行,那么该查询应该可以解决问题。
我怀疑你要做的是用别名引用选择列表中的表达式。这不受支持。 WHERE子句中引用列的表达式必须按名称引用该列。
我们可以使用内联视图播放一些技巧,为表达式提供别名,但就WHERE谓词而言,这是没有效率的,因为MySQL实现派生表的方式。并且,在这种情况下,它是内联视图中的列的名称,必须在外部查询中引用。
答案 2 :(得分:0)
我正在尝试在 {{1}]中获取(<3>个值) column number
4
} 。
sometable
当然,如果数据库名称是已知的,第一行可能会被鞭打,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;
会替换为真实的数据库名称。
答案 3 :(得分:-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";