postgresql - 过滤postgresql查询,其中值不是同一列中任何其他值的子字符串
问题描述
我有一个表,其中有一列名为values
:
values | other_columns...
-------+-----------------
f | ...
foo | ...
fo | ...
bar | ...
ba | ...
baz | ...
foobar | ...
查询此表时,我想过滤结果,以便仅剩下的行value
不是列中任何其他行的子字符串value
:
prime_values | other_result_columns...
-------------+------------------------
baz | ...
foobar | ...
我怎样才能做到这一点?
解决方案
不存在:
select t.*
from tablename t
where not exists (
select 1
from tablename
where
values <> t.values
and
values like concat('%', t.values, '%')
)
请参阅演示。
结果:
> | values |...
> | :----- |
> | baz |
> | foobar |
推荐阅读
- php - laravel/lumen 回调/函数定义中的“使用”是做什么的?
- docker - 如何使用 docker-compose 将已经运行的容器链接到我的应用程序
- ios - 如何在 WKWebView swift 5 中更改字体大小?
- c++ - 如何在 C++ 中的 wcstok 中使用 const WCHAR* 变量?
- python - 使用来自 3D 数组的 matplotlib.animation.funcanimation 的 3d 动画
- user-interface - 对齐两个圆形头像的最佳方法是什么?
- if-statement - 在保持组的同时创建子组
- python - 执行循环时如何在数据框中添加额外的行
- php - 安装 Laravel - OpenSSL 问题
- c# - 使用 ASP.NET 创建应用程序发布自动化工具的最佳方法是什么?