from my comment above:
I can do this now with two separate queries, but it would be nice to be able to do it in one. Still, this is progress. The first query is like this:
DELETE wp FROM wp_posts wp LEFT JOIN wp_postmeta pm ON pm.post_id = wp.ID WHERE pm.meta_key = 'state' AND pm.meta_value != 'CA';
And the second (to clean up the orphan metadata) is like this:
DELETE pm FROM wp_postmeta pm LEFT JOIN wp_posts wp ON wp.ID = pm.post_id WHERE wp.ID IS NULL
Related Posts:
- Most efficient way to get posts with postmeta
- Query between two meta values?
- Get post from meta_key and meta_value
- WP_POSTMETA changes site crash
- cleaning up safely wordpress wp_postmeta table
- How do I insert a new meta key / value pair, but only if another meta key is present?
- Duplicate rows in meta table, any known relations in WC?
- Need a SQL query to update meta_key=’_price’ with value in meta_key=’_regular_price’
- SQL query – get a featured image’s alt / alternative text
- Removing Malware
- Which query method to use? (edit- wpdb syntax problems)
- How do I retrieve the slug of the current page?
- Get posts by meta value
- Explanation of update_post_(meta/term)_cache
- How to extract data from a post meta serialized array?
- How to save an array with one metakey in postmeta?
- WordPress is stripping escape backslashes from JSON strings in post_meta
- How can I get the post ID from a WP_Query loop?
- Check if Post Title exists, Insert post if doesn’t, Add Incremental # to Meta if does
- How to update_post_meta value as array
- Adding meta tag without plugin
- What’s the point of get_post_meta’s $single param?
- What is the different between an attachment in wp_posts and an attachment in wp_postmeta?
- How to edit a post meta data in a Gutenberg Block?
- Sanitizing integer input for update_post_meta
- post formats – how to switch meta boxes when changing format?
- Execute action after post is saved with all related post_meta records (data)
- Lack of composite indexes for meta tables
- Get a single post by a unique meta value
- if get_post_meta is empty do something
- How we get_post_meta without post id
- How get post id from meta value
- What is the code to get the download link for a product in WooCommerce?
- Safe to delete blank postmeta?
- advanced custom fields update_field for field type: Taxonomy
- update_post_meta not saving when value is zero
- Export WordPress Posts and Meta Information in CSV format
- Content hooks vs User hooks
- Meta compare with date (stored as string) not working
- Trying to get custom post meta through Jetpack JSON API [closed]
- How to update/insert custom field(post meta) data with wordpress REST API?
- Restrict post edit/delete based on user ID and custom field
- get_post_meta returning empty string when data shows in the database
- publish_post action hook doesn’t give post_meta_data
- Remove WordPress.org Meta link
- Remove post meta keys
- How to access the post meta of a post that has just been published?
- Why time functions show invalid time zone when using ‘c’ time format?
- Why is get_post_meta returning an array when I specify it as single?
- How to update/delete array in post meta value?
- How to get all term meta for a taxonomy – getting term_meta for taxonomy
- Adding an assisting editor box to Post page
- How to display multiple Post meta_key/meta_values by SQL query
- delete unused postmeta
- Should I sanitize custom post meta if it is going to be escaped later?
- Add post meta based on another post meta value before publish post
- What is an efficient way to query based on post_meta?
- How do I retrieve multi-dimensional arrays from the wp_postmeta table, & display on a website?
- Front-end update_post_meta snippet displays white screen?
- Save both current and new version of post meta
- Get Advanced Custom Fields values before saving [closed]
- Give extra post-meta to RSS feeds
- How to get meta value in wp_attachment_metadata
- WP REST API “rest_no_route” when trying to update meta
- Clean up output added via wp_head()
- List posts under meta_value heading
- Why am I getting an infinite loop with have_posts?
- Up/Down voting system for WordPress
- get_post_meta – get a single value
- delete value 0 in post meta [closed]
- Can I safely delete a record, manually, in the wp postmeta table?
- How to store post meta in an array?
- What action hook updates post meta?
- Can’t translate the post meta data (Date) in another language
- get_post_meta / update_post_meta array
- adding a URL to a post meta
- Exclude a category from the filed under list
- Short of raw SQL, can I query for multiple attachment metadata that have a given array key?
- How do I access post meta data when publishing a new post in Gutenberg?
- update_post_meta() not working when used with WordPress action
- Using Advanced Custom Field (ACF) to insert meta description on each page
- Triple meta_key on custom SELECT query
- get_post_custom()
- Adding meta data to an attachment post
- update_post_meta not adding anything.(Nor add_post_meta)
- loop through all meta keys with get_post_meta
- Get posts by meta value with date
- How to add meta tag to wordpress posts filter?
- Are multiple values from get_post_meta guaranteed to be ordered?
- Identifying Importer Posts
- Get updated post meta on save_post action?
- Add a post metadata if only the key and value does not exist
- get_post_meta returns bool(false)
- How metadata API works?
- Correct processing of `$_POST`, following WordPress Coding Standards
- Metabox Data not being saved [closed]
- How can I get values using key in Carbon Fields from Multiselect?
- Delete post meta conditionally after save post
- How to sanitize post meta field value?
- Problem With Order Item Meta In Woocommerce