60

How do I change the order of my table fields without deleting the field and re-inserting it, using PHP myAdmin?

random
  • 9,774
  • 10
  • 66
  • 83
Joshua
  • 681
  • 1
  • 7
  • 6

9 Answers9

75
ALTER TABLE `table_name` MODIFY `column_you_want_to_move` DATATYPE AFTER `column`

DATATYPE is something like DATETIME or VARCHAR(20) ..etc

Populus
  • 7,470
  • 3
  • 38
  • 54
41

If you have phpMyAdmin 4.0.0+, you can use the phpMyAdmin Feature under Structure:

TecBeast
  • 930
  • 8
  • 16
24

Something like this will help

ALTER TABLE Person MODIFY COLUMN last_name VARCHAR(50) AFTER first_name;

This will move last_name right after first_name in order.

Ashish
  • 241
  • 3
  • 2
  • What if you want to make the column the first column? Ie, so it's not AFTER anything. I tried `"... BEFORE current_first_col"` but it doesn't recognise BEFORE. – Max Williams Apr 17 '13 at 09:43
  • 3
    Aha, just answered my own comment - the syntax is `ALTER TABLE Person MODIFY COLUMN last_name VARCHAR(50) FIRST;` to make it the first column. – Max Williams Apr 17 '13 at 09:44
9

Since version 4.0, phpMyAdmin has a "Move columns" dialog in Structure, that permits you to graphically move columns in the structure.

Marc Delisle
  • 8,879
  • 3
  • 29
  • 29
9

http://dev.mysql.com/doc/refman/5.0/en/change-column-order.html

From the Aforementioned Source:

If you decide to change the order of table columns anyway, you can do so as follows:

  1. Create a new table with the columns in the new order.

  2. Execute this statement:

    mysql> INSERT INTO new_table -> SELECT columns-in-new-order FROM old_table;

  3. Drop or rename old_table.

  4. Rename the new table to the original name:

    mysql> ALTER TABLE new_table RENAME old_table;

Sampson
  • 265,109
  • 74
  • 539
  • 565
4
alter table table_name modify column col_name type after col_name
animuson
  • 53,861
  • 28
  • 137
  • 147
Cruz
  • 41
  • 1
3

It's simple. Just go to PHPmyadmin, click on your database, then click table. Then click on structure. Below the table look for the button, "Move columns". Click and order the columns the way you want.

1

Another alternative:

CREATE new_table SELECT columns-in-new-order FROM old_table;
Qantas 94 Heavy
  • 15,750
  • 31
  • 68
  • 83
1

if you have MySQL Workbench you can easily reorder columns using mouse, graphically.

Just connect to your database, select your table and after right click, alter table and then drag columns to reorder them.

skobaljic
  • 9,379
  • 1
  • 25
  • 51
Peyman abdollahy
  • 799
  • 1
  • 8
  • 18