gpt4 book ai didi

php - MySql查询或合并数组为1

转载 作者:行者123 更新时间:2023-11-30 22:15:59 25 4
gpt4 key购买 nike

我正在使用 ACF Pro,在数据库 wp_postmeta 中我有 2 个 meta_key:dich_vu_%_name_servicedich_vu_%_price_service。两者都有值,所以我如何查询并将其返回为 (dich_vu_%_name_service,dich_vu_%_price_service)。或者,如果 MySQL 无法处理它,那么我如何将这些查询的 2 个数组合并成一个这样的数组?

array(objects(['name_service'] => Test,['price_service'] => 9999))

这是我试过的代码

function getAllFaqs() {
global $wpdb;
$results = $wpdb->get_results( $wpdb->prepare(
"SELECT DISTINCT meta_value FROM {$wpdb->prefix}posts,{$wpdb->prefix}postmeta WHERE meta_key LIKE %s AND post_name = %s",
'dich_vu_%_name_service',
'bang-gia-dich-vu'
));
$results2 = $wpdb->get_results( $wpdb->prepare(
"SELECT DISTINCT meta_value FROM {$wpdb->prefix}posts,{$wpdb->prefix}postmeta WHERE meta_key LIKE %s AND post_name = %s",
'dich_vu_%_price_service',
'bang-gia-dich-vu'
));

$array = array();
foreach ($results as $result) {
$array[]['name_service'] = $result->meta_value;
}
$array = $array;
$array2 = array();
foreach ($results2 as $result2) {
$array2[]['price_service'] = $result2->meta_value;
}
$array2 = $array2;
$array3 = array_combine($array,$array2);

感谢您的帮助!

最佳答案

Union 是您的 friend ,您可以组合两个查询(请记住,两个结果集必须具有相同的列数、相同的类型和顺序):

$query1 = $wpdb->prepare( 
"SELECT DISTINCT meta_value FROM {$wpdb->prefix}posts,{$wpdb->prefix}postmeta WHERE meta_key LIKE %s AND post_name = %s",
'dich_vu_%_name_service',
'bang-gia-dich-vu'
);
$query2 = $wpdb->prepare(
"SELECT DISTINCT meta_value FROM {$wpdb->prefix}posts,{$wpdb->prefix}postmeta WHERE meta_key LIKE %s AND post_name = %s",
'dich_vu_%_price_service',
'bang-gia-dich-vu'
);

$results = $wpdb->get_results( $query1.' UNION '.$query2);

检查 docs

P.S: 我不知道 wordpress 但看到了 prepare返回经过清理的查询字符串,因此中间的 UNION 应该可以工作

关于php - MySql查询或合并数组为1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38262567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com