php - SQL排序列表,但将特定元素放在PHP中
问题描述
我想使用收到的日期或赞成票对我的图像列表进行排序。还可以使用打开图像的链接,例如www.mywebsite.com/images?selected=73723.jpg
直接打开图像,而其他排序术语仍然适用。
所选图像应该是第一个元素,但之后它应该再次按日期排序或像往常一样投票。这是我所拥有的:
$sortingstring = "image_uploads.UPVOTES DESC"; // <-- order by upvote
$sortingstring = "image_uploads.THMPATH = '".$selectedCode."'"; // <-- selected image
$query = "SELECT * FROM test_users, image_uploads ORDER BY " . $sortingstring;
在此示例中,我们可以看到用于投票排序和过滤掉所选图像的代码。如何结合按赞排序并首先显示所选图像,无论我尝试什么似乎都不起作用?
解决方案
也许你可以用 FIELD 函数来做,像这样
ORDER BY FIELD(image_uploads.THMPATH, "your code") DESC, image_uploads.UPVOTES DESC
这是一个简单的例子
CREATE TABLE `items` (
`id` int(11) NOT NULL,
`sort_field` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
ALTER TABLE `items` ADD PRIMARY KEY (`id`);
INSERT INTO `items` (`id`, `sort_field`) VALUES
(1, 1),
(2, 3),
(3, 2);
询问
SELECT * FROM items ORDER BY FIELD(items.id, 1) DESC, sort_field DESC
结果
| id | sort_field |
|----|------------|
| 1 | 1 |
| 2 | 3 |
| 3 | 2 |
推荐阅读
- ethereum - Solidity:我应该使用哪种方法来调用外部合约的函数?
- google-sheets - 在 Google 表格中列出类别
- php - 重力表格上的预填字段
- avr - XMega E5 设备的 ImageCraft iFlash 问题
- javascript - 什么是身份验证中的回调 uri (Auth0)
- c++ - Message id's in the main application loop
- javascript - 如何在项目之间的 React Flatlist 中呈现 AdMob 横幅?
- javascript - Vue.js,如何通过 ID 滚动到锚点而不导航到路由
- python - numpy 选择具有特定移动窗口的成员
- group-by - F# Linq Sql 查询中的运行时类型错误,多列分组