Changing the key/value pair of a field list in Drupal 7 once content has been added to the site
In future use taxonomy for the list. That way you can add/edit to the list without any problems. Lists should be used for things that are constant, like the seasons of the year etc. 

Use MySQL Workbench (assuming you are using MySQL). Open the table 'field_config' and do a select on it.

Look for your field in question. It's data is a blob. Right click on the blob and select 'Open Value in editor'. Select text.

You will see something like this:


  a:7:{s:12:"translatable";s:1:"0";s:12:"entity_types";a:0:{}s:8:"settings";a:2:{s:14:"allowed_values";a:2:{i:1;s:3:"one";i:2;s:3:"two";}s:23:"allowed_values_function";s:0:"";}s:7:"storage";a:5:{s:4:"type";s:17:"field_sql_storage";s:8:"settings";a:0:{}s:6:"module";s:17:"field_sql_storage";s:6:"active";s:1:"1";s:7:"details";a:1:{s:3:"sql";a:2:{s:18:"FIELD_LOAD_CURRENT";a:1:{s:21:"field_data_field_list";a:1:{s:5:"value";s:16:"field_list_value";}}s:19:"FIELD_LOAD_REVISION";a:1:{s:25:"field_revision_field_list";a:1:{s:5:"value";s:16:"field_list_value";}}}}}s:12:"foreign
  keys";a:0:{}s:7:"indexes";a:1:{s:5:"value";a:1:{i:0;s:5:"value";}}s:2:"id";s:1:"6";}


You can see under allowed values I have two list entries:

1 => one

2 => two

To add 3 => three I change this bit:

"allowed_values";a:2:{i:1;s:3:"one";i:2;s:3:"two";}

To this:

"allowed_values";a:3:{i:1;s:3:"one";i:2;s:3:"two";i:3;s:5:"three";}

a:2 changed to a:3 as it is the count of values in the list

i:3 indicates the new key

s:5 is the string length of the word three

Then hit apply in the edit box, and hit apply in the SQL window and you are done.



So you don't want to add a new value, but edit an existing one. Use same process as above, but just edit the allowed_values, then run an SQL update on your two tables for the field : 'field_data_XXX', 'field_revision_XX' to update old key to new key.