0
我正在处理客户端项目,并在多重meta_key,元值搜索中苦苦挣扎。多个元键和元值搜索
我的数据库结构就是这样
clinics clinics_meta ======= ============= id name id fk_clinic_id meta_key meta_value 1 dental 1 1 city london 2 heart 2 1 country england 3 2 city manchester 4 2 country london
我想诊所city = london
和country = england
我试过这样
SELECT distinct(clinics.id) FROM clinics, clinic_meta
WHERE clinics.id = clinic_meta.fkClinicId
AND (clinic_meta.metaKey = 'clinicCountry' AND clinic_meta.metaValue like '%england%')
AND (clinic_meta.metaKey = 'clinicCity' AND clinic_meta.metaValue like '%london%')
请不要求索语法错误,但逻辑。
此代码不会返回clinic name/id
,
,而不是使用两个过滤城市,国家
如果我只用一个过滤器它返回诊所名称,但。
任何帮助将不胜感激。
感谢。
谢谢Long Dog, 如果metakey值过滤器的数量增加,我必须增加连接数吗? –
没问题,看起来像,是的...如果没有,我会为clinics_meta添加一个索引: alter table clinic_meta add key(meta_key,meta_value); 我假设clinics_meta.clinic_id和clinic.id上已经有密钥? – RJJ
请接受答案,如果它的工作:) – RJJ