This question is more of I'd like to know rather than an issue for me right now.

In the table exp_channel_data Playa fields store a string using the following fields from the relationship channel entry: "[entry_id] [url_title] title".

However the table exp_playa_relationships is the one that stores the IDs between parent, child etc. This is the only table that is updated if one of the entries are edited. So why is the string stored in the exp_channel_data table?

1 Answer 1



Storing data in the exp_channel_data table makes the field searchable by the native search module as well as third party add-ons like Low Search.

Additionally, it also allows the field to be targeted by the channel:entries' search:field_name parameter, eg. search:playa_field="[123]"

  • Gotya, that makes total sense. The only caveat is that this field is not being updated in my database so is often out of date with the relationship table. Is this the expected behavior or a problem with my install?
    – KoalaKid
    Commented Apr 20, 2015 at 10:08
  • I'm not Playa's dev, but I think the field only gets updated when the parent entry is updated. If any child entries are modified or deleted, those changes probably won't reflect in the DB.
    – Low
    Commented Apr 20, 2015 at 12:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.