我编写了以下 mysql 查询,允许用包含特定单词组合的单元格内容填充 php 数组,同时跳过所有其他单元格:
$variable = "value";
$query = $wpdb->get_results("
SELECT post_content
FROM wp_posts
WHERE post_content
REGEXP '>(.*) $variable (.*)<'
");
它成功地履行了它的 promise ,除非我想通过特定的 WordPress 类别或一组 WordPress 类别来限制它的义务。
此时我只是不知道如何修改我的查询以满足我的需要。
有大量仅对特定 WordPress 类别执行 mysql 查询的工作示例,但一旦我添加 REGEXP '>(.*) $variable (.*)<'
,它们都立即无法填充数组。给他们。
我真的会用 $array = array('s' => $value, 'cat' => ID, 'posts_per_page' => -1);
或者类似的东西如果 's'
不会使用 mysql 的 LIKE
在我的案例中会产生不可预测结果的语句。
请帮我修改查询。
如果您要帮助我解决这个问题,我会额外感谢您,以防您觉得对我的查询的每个更改或添加进行评论很无聊,就在您添加的代码附近。得到现成的结果总是很棒,但我想学习并防止自己在每次遇到类似问题时一次又一次地问同样的问题。
最佳答案
经过一些研究,我最终得到了这个可行的解决方案:
$variable = "value";
$query = $wpdb->get_results("
SELECT ID, post_content
FROM $wpdb->posts p
JOIN $wpdb->term_relationships tr ON (p.ID = tr.object_id)
JOIN $wpdb->term_taxonomy tt ON (tr.term_taxonomy_id = tt.term_taxonomy_id)
JOIN $wpdb->terms t ON (tt.term_id = t.term_id)
WHERE post_content REGEXP '>(.*) $variable (.*)<'
AND tt.taxonomy = 'category'
AND t.term_id = '###'
");
查询的最后一行是我应该用所需的 WordPress 类别 ID 号替换 ###
的地方。
关于php - 允许 $wpdb mysql 查询处理特定的 WordPress 类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42204977/