PHP MySQL查询将动态字段值与其他字段匹配动态匹配值条件

时间:2012-12-07 12:15:56

标签: php mysql

以下是我在MySQL中的数据库表结构 - 我希望将特定的动态字段值相互匹配,如下所述:

meta_id post_id     meta_key            meta_value
616     472         "machine_type"      "Combined pipe cutting"
561     472         _edit_lock          1354882015:1
560     472         _edit_last          1
562     472         _mf_write_panel_id  1
565     472         _wp_page_template   machine_layout.php
617     472         jet_filter          
618     472         "length_x_axis"     "3000mm"
619     472         machine_image       488

上面我有""引号标记了字段 - 我必须根据这些字段应用查询并获取结果。

现在,我想检查meta_key字段和meta_value字段,并希望检索匹配的post_id字段的值。

例如:meta_key上的第一个参数将是length_x_axis,其meta_value中的匹配值将为3000mmAND条件将为meta_key machine_type的{​​{1}}及其meta_value中的匹配值为Combined pipe cutting

我需要的结果是post_id472

这是一个完整的动态wordpress wp_postmeta表,其中包含许多具有此类条件的记录。

结果中最早的MySQL查询将不胜感激。

如果有任何法术错误,请原谅我,我已尽力向社区解释我的问题。

请帮忙!

1 个答案:

答案 0 :(得分:1)

我不确定你真正想要什么,但我认为这是你正在寻找的问题:

SELECT t1.post_id 
FROM mytable t1 inner join mytable t2 on t1.post_id = t2.post_id 
WHERE t1.meta_key = "length_x_axis" and t1.meta_value="3000mm" 
AND t2.meta_key="machine_type" and t2.meta_value="Combined pipe cutting"