当我运行查询时,它会以随机顺序对标签进行分组。
这是目前的样子:
https://www.example.com/app/user-images.php?tags=peace&tags2=dogs&tags3=aesthetic
图片 #1 - 和平
图片 #2 - 和平
图片 #3 - 狗
图片 #4 - 狗
图片 #5 - 美学
图片 #6 - 和平
预期结果:
图片 #1 - 和平
图片 #2 - 和平
图片 #3 - 和平
图片 #4 - 狗
图片 #5 - 狗
图片 #6 - 美学
有什么办法可以做到这一点?第一个标签是和平,第二个是狗,第三个是基于 URL 的美学。这是我的代码:
$tags = $_GET['tags'];
$tags2 = $_GET['tags2'];
$tags3 = $_GET['tags3'];
$fetch = mysqli_query($conn, "SELECT * FROM users JOIN user_images ON users.username = user_images.username WHERE tags = '$tags' OR tags = '$tags2' OR tags = '$tags3' ORDER BY user_images.tags ASC");
我尝试使用 ORDER BY user_images.tags ASC
但这并没有真正帮助,因为无论我将标签放在 URL 中的什么位置,它们的顺序都是相同的。
最佳答案
您可以按多个条件进行排序,因此在这种情况下,将您的搜索词添加到排序中应该可行。例如:
...
ORDER BY tags = '$tags' DESC, tags = '$tags2' DESC, tags = '$tags3' DESC
关于php - 如何 ORDER BY 哪个参数在 URL 或 MySQL 查询中排在第一位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54728688/