I have a query, to display Profile, one of the column contain Array of languages fluent in.
x
profile gender country nationality fluent_in
318 Male United Arab Emirates Lebanese a:2:{i:0;s:6:"Arabic";i:1;s:7:"Bengali";}
366 Female Lebanon Lebanese a:3:{i:0;s:6:"Arabic";i:1;s:7:"English";i:2;s:6:"French";}
368 Male Jordan Australian a:2:{i:0;s:7:"English";}
2924 Male United Arab Emirates Lebanese a:2:{i:0;s:6:"Arabic";i:1;s:7:"English";}
My question, what i should add to the Query, to Filter query “English”, AND “Arabic” ?
My SQL Query:
SELECT p2p_to as profile, pm1.meta_value as gender, pm2.meta_value as country, pm3.meta_value as nationality , pm4.meta_value as fluent_in
FROM `wp_p2p`
LEFT JOIN wp_postmeta AS pm1 ON (wp_p2p.p2p_to = pm1.post_id AND pm1.meta_key='gender')
LEFT JOIN wp_postmeta AS pm2 ON (wp_p2p.p2p_to = pm2.post_id AND pm2.meta_key='country')
LEFT JOIN wp_postmeta AS pm3 ON (wp_p2p.p2p_to = pm3.post_id AND pm3.meta_key='nationality')
LEFT JOIN wp_postmeta AS pm4 ON (wp_p2p.p2p_to = pm4.post_id AND pm4.meta_key='fluent_in')
WHERE `p2p_type` LIKE 'service_learn'
Advertisement
Answer
Try:
pm4.meta_value LIKE "%Arabic%" AND pm4.meta_value LIKE "%English%"
You can put it in the WHERE clause or in the JOIN ON. It’s better in the JOIN part.