Heya,
Thanks so much for your help. Please send me an Amazon link for a book, cd, dvd, or such 
Alrighty, so I figured out how to dump from a query (for those who don’t know, just run a query in phpmyadmin and then click export at the bottom of the results page) and can recreate the problem now on a sample. Attached (tables are called wp_posts_3 and wp_postmeta_3 now).
So, if I run…
SELECT wp_posts_3.ID, wp_posts_3.post_date, wp_posts_3.post_title, wp_posts_3.post_content,
MAX(CASE WHEN meta_key = ‘ad_city’ THEN meta_value END ) AS ad_city,
MAX(CASE WHEN meta_key = ‘ad_state’ THEN meta_value END ) AS ad_state,
MAX(CASE WHEN meta_key = ‘ad_trade_for’ THEN meta_value END ) AS ad_trade_for,
MAX(CASE WHEN meta_key = ‘ad_trade_category’ THEN meta_value END ) AS ad_trade_category,
MAX(CASE WHEN meta_key = ‘ad_miles_range’ THEN meta_value END ) AS ad_miles_range,
MAX(CASE WHEN meta_key = ‘ad_zip_code’ THEN meta_value END ) AS ad_zip_code,
MAX(CASE WHEN meta_key = ‘ad_price’ THEN meta_value END ) AS ad_price
FROM wp_posts_3
LEFT JOIN wp_postmeta_3 ON ( wp_posts_3.ID = wp_postmeta_3.post_id )
WHERE wp_posts_3.post_status = ‘publish’
GROUP BY wp_posts_3.ID
HAVING MAX(CASE WHEN meta_key = ‘ad_miles_range’ THEN meta_value END) = ‘50’
ORDER BY wp_posts_3.post_date DESC
LIMIT 30
…then I get 2 rows, one that has ‘TN’ as the ad_state. If I run now…
SELECT wp_posts_3.ID, wp_posts_3.post_date, wp_posts_3.post_title, wp_posts_3.post_content,
MAX(CASE WHEN meta_key = ‘ad_city’ THEN meta_value END ) AS ad_city,
MAX(CASE WHEN meta_key = ‘ad_state’ THEN meta_value END ) AS ad_state,
MAX(CASE WHEN meta_key = ‘ad_trade_for’ THEN meta_value END ) AS ad_trade_for,
MAX(CASE WHEN meta_key = ‘ad_trade_category’ THEN meta_value END ) AS ad_trade_category,
MAX(CASE WHEN meta_key = ‘ad_miles_range’ THEN meta_value END ) AS ad_miles_range,
MAX(CASE WHEN meta_key = ‘ad_zip_code’ THEN meta_value END ) AS ad_zip_code,
MAX(CASE WHEN meta_key = ‘ad_price’ THEN meta_value END ) AS ad_price
FROM wp_posts_3
LEFT JOIN wp_postmeta_3 ON ( wp_posts_3.ID = wp_postmeta_3.post_id )
WHERE wp_posts_3.post_status = ‘publish’
GROUP BY wp_posts_3.ID
HAVING MAX(CASE WHEN meta_key = ‘ad_miles_range’ THEN meta_value END) = ‘50’
AND MAX(CASE WHEN meta_key = ‘ad_state’ THEN meta_value END) = ‘TN’
ORDER BY wp_posts_3.post_date DESC
LIMIT 30
…just adding the ad_state HAVING AND, then I get an empty result. If I just run…
SELECT wp_posts_3.ID, wp_posts_3.post_date, wp_posts_3.post_title, wp_posts_3.post_content,
MAX(CASE WHEN meta_key = ‘ad_city’ THEN meta_value END ) AS ad_city,
MAX(CASE WHEN meta_key = ‘ad_state’ THEN meta_value END ) AS ad_state,
MAX(CASE WHEN meta_key = ‘ad_trade_for’ THEN meta_value END ) AS ad_trade_for,
MAX(CASE WHEN meta_key = ‘ad_trade_category’ THEN meta_value END ) AS ad_trade_category,
MAX(CASE WHEN meta_key = ‘ad_miles_range’ THEN meta_value END ) AS ad_miles_range,
MAX(CASE WHEN meta_key = ‘ad_zip_code’ THEN meta_value END ) AS ad_zip_code,
MAX(CASE WHEN meta_key = ‘ad_price’ THEN meta_value END ) AS ad_price
FROM wp_posts_3
LEFT JOIN wp_postmeta_3 ON ( wp_posts_3.ID = wp_postmeta_3.post_id )
WHERE wp_posts_3.post_status = ‘publish’
GROUP BY wp_posts_3.ID
HAVING MAX(CASE WHEN meta_key = ‘ad_state’ THEN meta_value END) = ‘TN’
ORDER BY wp_posts_3.post_date DESC
LIMIT 30
…I still get an empty result. If I run it with 2 parameters other than ad_state it works right again, ie…
SELECT wp_posts_3.ID, wp_posts_3.post_date, wp_posts_3.post_title, wp_posts_3.post_content,
MAX(CASE WHEN meta_key = ‘ad_city’ THEN meta_value END ) AS ad_city,
MAX(CASE WHEN meta_key = ‘ad_state’ THEN meta_value END ) AS ad_state,
MAX(CASE WHEN meta_key = ‘ad_trade_for’ THEN meta_value END ) AS ad_trade_for,
MAX(CASE WHEN meta_key = ‘ad_trade_category’ THEN meta_value END ) AS ad_trade_category,
MAX(CASE WHEN meta_key = ‘ad_miles_range’ THEN meta_value END ) AS ad_miles_range,
MAX(CASE WHEN meta_key = ‘ad_zip_code’ THEN meta_value END ) AS ad_zip_code,
MAX(CASE WHEN meta_key = ‘ad_price’ THEN meta_value END ) AS ad_price
FROM wp_posts_3
LEFT JOIN wp_postmeta_3 ON ( wp_posts_3.ID = wp_postmeta_3.post_id )
WHERE wp_posts_3.post_status = ‘publish’
GROUP BY wp_posts_3.ID
HAVING MAX(CASE WHEN meta_key = ‘ad_miles_range’ THEN meta_value END) = ‘50’
AND MAX(CASE WHEN meta_key = ‘ad_city’ THEN meta_value END) = ‘Brighton’
ORDER BY wp_posts_3.post_date DESC
LIMIT 30
Seems to be something specific to the ad_state field. Any ideas?
Hopefully you can find the issue from this, I’ve spent hours and hours since yesterday and still no luck.
Thanks yet again!
Philip