<p>Dropdown fields (and other simple option-based fieldtypes such as Radio Buttons, Checkboxes and Multi Select) are pretty dumb.</p>

<p>By design, whenever an Entry with a Dropdown field is saved, Craft simply grabs the selected value for that Dropdown field and stores it in the database for that Entry. Unlike relational fields such as Assets or Categories, <em>there's no "connection" (i.e. relation) between the selected value being stored, and the Dropdown fields' option where the value was pulled from</em> – this means that if you later decide to rename a Dropdown fields' option value from e.g. <code>"foo"</code> to <code>"bar"</code>, the selected value for any existing entries will <em>not</em> change/update. In other words, any entries that had <code>"foo"</code> selected, will still have <code>"foo"</code> stored as their value for that particular field, even if that option doesn't exist anymore.</p>

<p><em>The easiest way to bulk update entries' selected Dropdown values is probably to execute an SQL query.</em></p>

<p>Something like the below should work (the following example would update the selected value for a field with the handle <code>myDropdownField</code> from <code>"foo"</code> to <code>"bar"</code>, for <em>all</em> entries that have <code>"foo"</code> selected):</p>

<pre><code>UPDATE craft_content SET field_myDropdownField = 'bar' WHERE field_myDropdownField = 'foo';
</code></pre>

<p>To run this query, you'll need some sort of SQL client – for Mac, <a href="https://www.sequelpro.com/" rel="nofollow noreferrer">Sequel Pro</a> is very decent, and free. You can also use something like <a href="https://www.adminer.org/" rel="nofollow noreferrer">Adminer</a>.</p>

<p>Oh, and don't forget to back up your database before running any manual SQL query, and to clear out your caches after you're done.</p>

CC BY-SA 3.0
2017-04-05T11:49:12.813Z
2017-04-05T11:49:12.813Z
Mats Mikkel Rummelhoff
<p>And why clearing cache is not enough?</p>

CC BY-SA 4.0
2019-04-15T16:43:29.530Z
Do you know if something happened since this? Is there a way to batch save now in April 2019? Or maybe someone knows of a plugin? I have this exact issue to fix for 50 entries...
mateostabio
<entries><cache><entries-field>
Why if I change ie. drop down value, all entries needs to be resaved to take changes? How can I prevent it?
# Why if I change ie. drop down value, all entries needs to be resaved to take changes? How can I prevent it?

(Asked by: username_0 on 2017-04-05)

And why clearing cache is not enough?

**Tags:** entries, cache, entries-field
> **Comments:**
> **username_1**: Do you know if something happened since this? Is there a way to batch save now in April 2019? Or maybe someone knows of a plugin? I have this exact issue to fix for 50 entries...  

---

## 1 answers

### Answer by username_2 on 2017-04-05. Score: 3 | Accepted answer

Dropdown fields (and other simple option-based fieldtypes such as Radio Buttons, Checkboxes and Multi Select) are pretty dumb.
By design, whenever an Entry with a Dropdown field is saved, Craft simply grabs the selected value for that Dropdown field and stores it in the database for that Entry. Unlike relational fields such as Assets or Categories, there's no "connection" (i.e. relation) between the selected value being stored, and the Dropdown fields' option where the value was pulled from – this means that if you later decide to rename a Dropdown fields' option value from e.g. "foo" to "bar", the selected value for any existing entries will not change/update. In other words, any entries that had "foo" selected, will still have "foo" stored as their value for that particular field, even if that option doesn't exist anymore.
The easiest way to bulk update entries' selected Dropdown values is probably to execute an SQL query.
Something like the below should work (the following example would update the selected value for a field with the handle myDropdownField from "foo" to "bar", for all entries that have "foo" selected):
UPDATE craft_content SET field_myDropdownField = 'bar' WHERE field_myDropdownField = 'foo';

To run this query, you'll need some sort of SQL client – for Mac, Sequel Pro is very decent, and free. You can also use something like Adminer.
Oh, and don't forget to back up your database before running any manual SQL query, and to clear out your caches after you're done.


---

