--- John Mistler <[EMAIL PROTECTED]> wrote: > Is there a SELECT statement, if I have a table with > 50 columns, to select > every column EXCEPT the last one? Can I do this > without typing the name of > all 49 columns? > > If so, then what if I want to exclude the last TWO > columns? > > Thanks, > > John
There is no construct in SQL to select "X number of columns" from a table. The traditional answer to this question would normally be "use views", but since MySQL doesn't support them that doesn't help you very much. Unless the extra columns are long text columns or contain BLOBS, then I see no harm in just selecting them along with the rest of the other columns by using "select * from" If you are accessing the database from a programming environment then you could do the following: [pseudo code] $sql = "desc $NAME_OF_TABLE" $result = exec($sql) $rows = fetch_result_into_array($result) destroy($result) $cnt = count($rows) - $NUMBER_OF_COLUMNS_TO_OMIT if ($cnt <= 0) { error("to few columns"); return; } $sql = "select " for ($i=0;$i < $cnt-1;$i++) { $sql = $sql + $ary[$i]["Field"] + ", " } $sql = $sql + $ary[$cnt]["Field"] $sql = $sql + " FROM $NAME_OF_TABLE_TO_SELECT_FROM" $sql = $sql + " WHERE $WHERE_CLAUSE" $sql = $sql + " HAVING $HAVING_CLAUSE" $sql = $sql + " GROUP BY $GROUP_BY_CLAUSE" $sql = $sql + " ORDER BY $ORDER_BY_CLAUSE" -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]