如何合并列值?

s4n0splo  于 2021-06-24  发布在  Mysql
关注(0)|答案(0)|浏览(210)

mysql查询中如何合并列值?我现在使用wordpress有一段时间了,我想从价格中排序数据,但是每个帖子都有不同类型的价格(每月和每年)。价格存储在 wp_postmeta . 这是我到目前为止试过的。

$mam_global_fields = "
    , price.meta_value AS villa_price,
    CASE currency.meta_value
        WHEN 'IDR' THEN price.meta_value * ". $currency_rate['IDR'] ." / 12
        WHEN 'USD' THEN price.meta_value * ". $currency_rate['USD'] ." / 12
        WHEN 'EUR' THEN price.meta_value * ". $currency_rate['EUR'] ." / 12
        WHEN 'AUD' THEN price.meta_value * ". $currency_rate['AUD'] ." / 12
    END AS price_in_usd,
    CASE currency_monthly.meta_value
        WHEN 'IDR' THEN price_monthly.meta_value * ". $currency_rate['IDR'] ."
        WHEN 'USD' THEN price_monthly.meta_value * ". $currency_rate['USD'] ."
        WHEN 'EUR' THEN price_monthly.meta_value * ". $currency_rate['EUR'] ."
        WHEN 'AUD' THEN price_monthly.meta_value * ". $currency_rate['AUD'] ."
    END AS price_in_usd_monthly,
    price.meta_key AS price_key,
    villa_code.meta_value AS v_codes
";

我加入了 wp_postmeta 多次,因为我想得到每个帖子的正确数据。

$mam_global_join = " 
    INNER JOIN " . $wpdb->postmeta . " AS currency_monthly ON (" . $wpdb->posts . ".ID = currency_monthly.post_id AND (currency_monthly.meta_key = 'monthly_currency'))
    INNER JOIN " . $wpdb->postmeta . " AS price_monthly ON (" . $wpdb->posts . ".ID = price_monthly.post_id AND (price_monthly.meta_key = 'monthly_price'))
    INNER JOIN " . $wpdb->postmeta . " AS currency ON (" . $wpdb->posts . ".ID = currency.post_id AND (currency.meta_key = 'currency'))
    INNER JOIN " . $wpdb->postmeta . " AS price ON (" . $wpdb->posts . ".ID = price.post_id AND (price.meta_key = 'price'))
    INNER JOIN " . $wpdb->postmeta . " AS villa_code ON (" . $wpdb->posts . ".ID = villa_code.post_id AND villa_code.meta_key = 'code')
";

现在它是按2列排序的,但我只想按1列排序 price_in_usd (但仍然显示错误的别墅)

$mam_global_orderby = "price_in_usd, price_in_usd_monthly " . $sort[1];

那么如何以正确的方式做到这一点呢?因为我想做一个排序程序,将排序的价格从两个价格(每年或每月),所以如果职位有每年的价格,那么价格将除以12。请帮忙。
我已经试过了 COALESCE() 但我被卡住了,那些代码是最新版本的。
编辑:
其实我有个主意,但不知道怎么做,我想得到 meta_value 暂时的价格,所以 yearly 或者 monthly 价格将在1列,我已经在谷歌看了,但没有得到答案。
编辑:
我想要的是,我想要合并两个不同的 meta_key (monthly\u currency&currency)转换为单个自定义列,我将使用该列进行排序,所有价格将转换为 USD 在分类之前,如你所见,有 CASE currency.meta_value 在我的密码里。所以在知道货币之后,它会检查价格,如果是每月还是每年,如果是每年,那么它会除以12。所以我可以按 lowest/highest 价格,即使是每月或每年的租金。我的问题是,我不能得到正确的结果,因为价格类型(每年/每月),所以如何做呢?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题