- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
最终结果是匹配一组 'post_id',按参加者人数排序。我知道这是一个 WP 后端,但我必须用 SQL 来做,没有 'get_posts' 或任何与 WordPress 相关的东西。我想做的是令人困惑,所以我会尽量弄清楚。
我必须开始的事情:
我需要做什么:
我需要检查这三个 post_id 以查看它们是否具有匹配的开始日期。如果他们这样做了,我需要获取一组 post_id,这些 post_id 是按照与会者人数从多到少排序的。
目前我正计划使用多个 SELECT 和 foreach() 语句来执行此操作,但我觉得必须有一种更简单的方法来执行此操作(即一个 SELECT & foreach() )。这就是我现在正在做的事情。我还没有完成它,因为我觉得必须有一种更简单的方法来做到这一点。 SQL 的新手,非常感谢任何帮助!
$check_post_ids = array('484', '627', '982', '2435');
$start_date = '1963-10-20 19:30:00';
// iterate through array of post_ids and check if they have the same _StartDate
foreach($check_post_ids as $id){
$start_date_check = "SELECT * FROM `wp_postmeta` WHERE `post_id` =" . $id . " AND `meta_key` LIKE '_StartDate' AND `meta_value` = '" . $start_date . "'";
$start_date_check_result = mysqli_query($conn, $start_date_check);
// assign all post_ids with a matching _StartTime to a new array
if (mysqli_num_rows($start_date_check_result) > 0) {
while($row = mysqli_fetch_assoc($start_date_check_result)) {
$matching_post_ids[] = $row['post_id'];
// iterate through matching_post_ids array, get the _NumAttendees for each, and assign their id and _NumAttendees to an assoc array to be sorted
foreach($matching_post_ids as $id){
$attendees_check = "SELECT meta_value FROM wp_postmeta WHERE post_id = " . $id . " AND meta_key = '_ecp_custom_2'";
$attendees_check_result = mysqli_query($conn, $attendees_check);
if($upvotes_check > 0){
while($row = mysqli_fetch_assoc($attendees_check_result)){
$sort_by_attendees['id'] = $id;
$sort_by_attendees['attendees'] = $row['meta_value'];
$sort_by_attendees_array[] = $sort_by_attendees;
}
}
}
最佳答案
对于查询的第一部分,我认为您可以使用SQL IN
关键字来简化您的代码。基本上,它将您的第一个数组的角色替换为您所有的帖子 ID。然后,您可以编写如下 SQL 查询:
SELECT meta_value
FROM wp_postmeta
WHERE meta_key = '_ecp_custom_2'
AND post_id IN (SELECT post_id
FROM wp_postmeta
WHERE post_id IN ('484', '627', '982', '2435')
AND meta_key LIKE '_StartDate'
AND meta_value = '" . $start_date . "'")
ORDER BY meta_value DESC
有 2 个查询。括号中的第一个,子选择表 wp_postmeta 上的所有帖子 ID,其中 post_ids 在您的列表中有 ID,如果它们与您的开始日期匹配。然后,主查询根据您的第一个子查询(所有具有开始日期的帖子 ID)选择所有元值(我想是与会者)。
希望对你有所帮助。
关于php - 搜索匹配 'meta_value' 和 'post_id' 时获取 'meta_key' , 'meta_value' 组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46101263/
对于令人困惑和繁琐的问题,我深表歉意,但无论如何我需要执行以下操作:在“wp_usermeta”表中,我为所有用户提供字段 (meta_keys)“category”和“request_categor
postmeta table example 最终结果是匹配一组 'post_id',按参加者人数排序。我知道这是一个 WP 后端,但我必须用 SQL 来做,没有 'get_posts' 或任何与 W
为什么返回结果为null?怎么了?如果我直接在phpmyadmin上使用这个咨询,结果是正确的。 get_var ( "SELECT meta_value FROM `wp_postmeta` WH
我想对 meta_value 字段进行内部联接。 在以下代码中,我需要将“enrolment”连接到“wp_woocommerce_order_itemmeta”(OIM) 表,其中 oim.meta
我创建了一个名为 acquity_fields 的 View ,包含 4 列(另请参阅附加的 phpMyAdmin View ):元ID;帖子 ID;元键;元值 我正在使用这篇文章Construct
如何在每个meta_key都是一列的表中处理meta_key、meta_value对? 背景:我需要获取在 Learnpress(Wordpress 插件)中进行的每次购买的付款方式、数量以及两个日期
我想使用$wpdb函数修改mysql中特定表中的值。 如何将meta_value value1更改为value2,它对应于wp_usermeta表中当前登录的user_id。 最佳答案 update_
在我的 wordpress 上,我有 1000 多篇帖子,我希望更新特定 meta_key 的某个 meta_vale,并且想知道如何使用 mysql 执行此操作。我需要更新的 meta_key 是“
我有一些帖子应该按价格自定义字段(从高到低)排序。使用以下选项正确排序它们: 选项 1 $args = array( 'posts_per_page' => -1, 'post_typ
需要能够按元值对 REST API 自定义帖子查询的结果进行排序。 这样做有困难。 我已将我的帖子类型提供给 REST API,并且可以按日期、标题等进行排序... 但是当我尝试 Post Meta
我正在尝试根据名为“points”的 meta_key 显示所有用户,如下所示: $wpdb->get_col($wpdb->prepare(" SELECT user_id, meta_key =
我的 MySQL 太差了,我需要将表中的值 first_name 和 last_name 更新为空白。我试图做这样的事情: DELETE FROM nomtable WHERE meta_key =
在我的 WordPress MySQL 数据库中,wp_postmeta 表中有一个 meta_key,其值为 mazda-certified。此外,还有一个与 meta_key 关联的 meta_v
在 Wordpress/Woocommerce 数据库中有一个 wp_postmeta 表。 我尝试更新 meta_value = '0',其中 meta_key = '_price' 只有另一个 m
我在 wordpress 中有一个表,它是 wp_usermeta,包含 meta_key 字段和一个名为 wp_s2member_custom_fields 的值,它包含一堆连接值,例如以下。 如何
我有以下 SQL 语句来计算基于 3 个 Wordpress 表的几个字段。我需要的是仅包含 meta_key='odd' 和 meta_value >= '1.5' 的结果。我在 WHERE 语句中
我在从 wp_postmeta 表检索 meta_value 时遇到问题,而不是字符串,我只得到随机数,也许有人知道我如何修改此查询以使其按我想要的方式工作。第三个 IF 不起作用,前两个 IF 可以
请有人帮助扩展此代码的功能以合并事件的结束日期和开始日期? get_results ( "SELECT $wpdb->posts.ID, $wpdb->posts.post_content, $wpd
在我对我面临的问题进行了一些研究之后我认为有这个语句使用 IF() 和 CONCAT() 函数合并到一个不同的列。我想做的是合并将两个值合并为一个值,并使第一个值看起来像一列。到目前为止,这是我的 s
我有一个插件,可以对搜索页面和分类页面上的帖子进行排序。该循环已经缩小了结果范围,所以我需要的是能够对自定义元值的帖子进行排序。在这种情况下的价格。我希望能够访问现有查询,替换任何特殊字符,然后根据干
我是一名优秀的程序员,十分优秀!