【问题标题】:Mysql Select query for same column name but with different valuesMysql Select查询相同的列名但具有不同的值
【发布时间】:2014-02-14 05:26:53
【问题描述】:

我有这张桌子:

id sh_id meta_key meta_value
1   1    country   111
2   1    state      10
3   1    city       5
4   2    country   110
5   4    state     11
....

我会将一个数组值传递给函数。并且数组包含如下值

$array = array('country_id'=>111,'state_id'=>10,'city_id'=>1);

function getValue($array)

我想得到那些数组值的结果应该与 meta_key 和 meta_value 匹配

例如:查询匹配数组的 country_id 值,meta_value 和 meta_key 'country' 以及 state 和 city

它应该在一个查询中。

我已经尝试了以下查询,但它不起作用

$this->db->where('meta_key', 'country');
$this->db->or_where('meta_value', $array['country_id']);
$this->db->where('meta_key', 'state');
$this->db->or_where('meta_value', $array['state_id']);
$query = $this->db->get("at_featured_shops");

【问题讨论】:

    标签: php mysql select


    【解决方案1】:

    你可以这样做:

    <?php
    $array = array(
        'country' => 111,
        'state' => 10,
        'city' => 5
    );
    
    function getValue($array) {
    
        $where = 'WHERE ';
    
        $or = '';
        foreach($array as $key => $value) {
            $where .= $or."(meta_key = '".$key."' AND meta_value = '".$value."')";
            $or = ' OR ';
        }
        $query = $this->db->query("SELECT * FROM table ".$where);
    
    }
    
    getValue($array);
    
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-12
      • 2020-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多