gpt4 book ai didi

php - MySQL Select 选择 "or"并按该字段排序

转载 作者:行者123 更新时间:2023-11-30 00:34:29 26 4
gpt4 key购买 nike

表:

| object_id  |     term_taxonomy_id   |
|-----1------|-------------2----------|
|-----2------|-------------2----------|
|-----1------|-------------3----------|
|-----3------|-------------2----------|
|-----4------|-------------3----------|
|-----4------|-------------2----------|

使用 MySQL,我想选择不同的 *object_id*(其中分类为 2 或 3),并按分类 desc 对其进行排序。

我在下面尝试过这个,它基本上有效,尽管当您添加 DISTINCT 时,它不会对结果进行排序。

 $sql_feed = mysqli_query($con,"SELECT DISTINCT object_id FROM wp_term_relationships WHERE term_taxonomy_id='2' OR term_taxonomy_id='3' ORDER BY term_taxonomy_id DESC");

我毫不怀疑这是我需要做的一个非常简单的调整;这只是我以前没有做过的事情,而且我无法找到符合所有标准的答案。

最佳答案

您在这里遇到的问题是查询对术语进行排序,然后选择不同的术语,再次为您提供无序的结果。相反,您想要做的是首先使用 GROUP BY 对结果进行分组,然后按每组的最大值进行排序,以便您的 DISTINCT 子句仅从每个组中挑选出一项组...

SELECT DISTINCT object_id
FROM wp_term_relationships
WHERE term_taxonomy_id='2' OR term_taxonomy_id='3'
GROUP BY object_id
ORDER BY MAX(term_taxonomy_id) DESC

顺便说一句,您应该放弃旧的 mysql_ 函数,这些函数现已从 PHP 5.5 开始弃用,并转向使用 MySQLi 或 PDO 进行参数化查询。这可以让您及时了解最新更新,并有助于提高针对 SQL 注入(inject)等攻击的安全性。 编辑:哎哟 - 误读了您的代码!

关于php - MySQL Select 选择 "or"并按该字段排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22286543/

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