php - 使用 GridDB 按自定义顺序对输出进行排序
问题描述
我正在尝试运行 ORDER BY 查询,但我希望根据自定义方案对输出进行排序。在 SQL 中,这通常是通过案例系统完成的,但根据数据库,还有其他实现。我将如何使用 GridDB 实现下面解释的排序?
假设我的 GridDB 列出了动物园中的所有动物以及每种动物有多少只生活在那里,我想要所有有 4 个或更多的动物,按大小,最小的第一个(鼠标),最大的最后一个(大象)。
我尝试过的事情:
$query = $col->query("SELECT * WHERE count >= 4 ORDER BY CASE
WHEN 'mouse' THEN 1
WHEN 'cat' THEN 2
WHEN 'dog' THEN 3
WHEN 'elephant' THEN 4
ELSE 5
END");
$query = $col->query("SELECT * WHERE count >= 4 ORDER BY FIND_IN_SET(animal, 'mouse, cat, dog, elephant')";
在任何一种情况下,都会收到输入不是有效语法的错误。
解决方案
GridDB 的 TQL 不支持 ORDER BY CASE 但通过多查询,您可以快速/高效地执行此操作。
请原谅我的 Python:
queries=[]
queries.append(col.query("select * where count >=4 and animal = 'mouse'"))
queries.append(col.query("select * where count >=4 and animal = 'cat'"))
queries.append(col.query("select * where count >=4 and animal = 'dog'"))
queries.append(col.query("select * where count >=4 and animal = 'elephant'"))
store.fetch_all(queries)
for q in queries:
rs = q.get_row_set()
while rs.has_next():
print(rs.next())
推荐阅读
- python - 如何从列表中获取某个值,分析之前在 python 中的值?
- vuetify.js - Vuetify 迷你图引发错误。如何解决?
- php - MySQL 数据库项目不会更新。PHP 不会进入 if($_POST['edit_submit'])
- javascript - 每个 DOM 元素的清晰样式
- excel - 如果文件名符合某些条件
- ruby-on-rails - 如何获得总成本和税收百分比
- ruby-on-rails - 使用 nokogiri(带有命名空间)从 xml 文件中读取数据
- high-level-architecture - HLA:FOM 与 SOM
- python - 将 Django 应用程序添加到已安装的应用程序并且无法迁移的问题
- python - VSCode 将 API 导入 Python 项目