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¤cy)转换为单个自定义列,我将使用该列进行排序,所有价格将转换为 USD
在分类之前,如你所见,有 CASE currency.meta_value
在我的密码里。所以在知道货币之后,它会检查价格,如果是每月还是每年,如果是每年,那么它会除以12。所以我可以按 lowest/highest
价格,即使是每月或每年的租金。我的问题是,我不能得到正确的结果,因为价格类型(每年/每月),所以如何做呢?
暂无答案!
目前还没有任何答案,快来回答吧!