次のようなことを行う方法はありますか:
SELECT * FROM TABLE WHERE COLUMN_NUMBER = 1;
?
いいえ、できません。MySQL では列の順序は重要ではありません。詳細については、以下の質問を参照してください。
テーブルに名前付きの列COLUMN_NUMBER
があり、その列に「1」の値が含まれているテーブルから行を取得する場合、そのクエリでうまくいくはずです。
あなたがしようとしているのは、選択リスト内の式をエイリアスで参照していると思われます。そして、それはサポートされていません。列を参照する WHERE 句の式は、列を名前で参照する必要があります。
式にエイリアスを与えるために、インライン ビューでいくつかのトリックを実行できますが、MySQL が派生テーブルを実体化する方法のため、これは WHERE 述語に関しては効率的ではありません。その場合、外側のクエリで参照する必要があるインライン ビューの列に付けられた名前です。
あなたはこのトリックを行うことができます
例:
$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";