V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  encounter2017  ›  全部回复第 1 页 / 共 3 页
回复总数  41
1  2  3  
46 天前
回复了 wuhao1 创建的主题 MySQL 老生常谈 关于 子查询的应用
我觉得还是看业务场景,比如说我这里有一个业务场景就是需要查询树状结点下面的所有子节点信息,这种情况下用 recursive cte 查询就很方便,一次就能查完,IO 都在数据库做了,不然的话还得多次查询数据库.

一个简单的示例
```
CREATE TABLE binary_tree (
id INT PRIMARY KEY,
value VARCHAR(255),
parent_id INT,
FOREIGN KEY (parent_id) REFERENCES binary_tree(id)
);

INSERT INTO binary_tree (id, value, parent_id) VALUES
(1, 'Root', NULL),
(2, 'Left Child', 1),
(3, 'Right Child', 1),
(4, 'Left Grandchild', 2),
(5, 'Right Grandchild', 2),
(6, 'Another Left Grandchild', 3),
(7, 'Another Right Grandchild', 3);

WITH RECURSIVE tree_cte AS (
-- Base case: select the root node
SELECT id, value, parent_id, 0 AS level, CAST(id AS text) AS path
FROM binary_tree
WHERE parent_id IS NULL

UNION ALL

-- Recursive case: select child nodes
SELECT c.id, c.value, c.parent_id, p.level + 1, CONCAT(p.path, ',', CAST(c.id AS text))
FROM binary_tree c
JOIN tree_cte p ON c.parent_id = p.id
)
SELECT id, value, parent_id, level, path
FROM tree_cte
ORDER BY path;

1,Root,,0,1
2,Left Child,1,1,"1,2"
4,Left Grandchild,2,2,"1,2,4"
5,Right Grandchild,2,2,"1,2,5"
3,Right Child,1,1,"1,3"
6,Another Left Grandchild,3,2,"1,3,6"
7,Another Right Grandchild,3,2,"1,3,7"

```
pg 支持部分索引,比如:

CREATE INDEX access_log_client_ip_ix ON access_log (client_ip)
WHERE NOT (client_ip > inet '192.168.100.0' AND
client_ip < inet '192.168.100.255');
2022-12-08 11:01:07 +08:00
回复了 xikazi 创建的主题 问与答 [求助] : FFmpeg 怎么读。
/ˈef.fem.dʒiː/
2022-08-25 10:26:09 +08:00
回复了 samin 创建的主题 程序员 记一次 PostgreSQL 事故处理
用 timestamp with time zone 是不是就没这么多事情了
2022-07-28 16:27:47 +08:00
回复了 KIRAYOMATO 创建的主题 问与答 非科班转码需要学哪些计算机专业的课程?
@rekulas 没放反。因为老老实实写问题描述记录日志,大多数人都不会认真看。挑起争议话题立刻就有人来给你纠正标准做法了
错误的提问方式❌:我想要实现一个这样的场景,这是我的报错日志,我做了如下尝试,有什么办法可以解决这个问题?

正确的提问方式✅: A 就是个垃圾,你看我用 B 也能做到一样好(附上错误的实践方式)
2022-03-02 11:16:46 +08:00
回复了 CookCoder 创建的主题 程序员 斐波那契数列 n = 9292 的结果是什么?
n < 2 的时候直接返回,不太对吧。。。
前几项是 1, 1, 2, 3, ...
2022-03-02 11:07:26 +08:00
回复了 CookCoder 创建的主题 程序员 斐波那契数列 n = 9292 的结果是什么?
2022-02-15 11:33:41 +08:00
回复了 lesismal 创建的主题 程序员 伸手党真是烦
@Herong 2048  是什么鬼 2077 ?
2022-01-17 11:26:39 +08:00
回复了 duyaofei 创建的主题 分享发现 最近看道德经,发现写的是三进制计算机啊,大佬们解惑
《震惊,苏联三进制计算机Сетунь灵感来自道德经》
2022-01-12 12:12:58 +08:00
回复了 7911364440 创建的主题 Java 有没有 DDD 开源实战项目推荐?
2021-12-10 10:59:41 +08:00
回复了 eviladan0s 创建的主题 Java 颤抖吧 Javaer, log4j 史诗级漏洞
@conhost https://mvnrepository.com/artifact/ch.qos.logback/logback-classic/1.2.7
不是吧,测试有依赖的 log4j1 ,编译没有依赖
人家问的是计算框架,楼下说的是容器平台,都不是一回事
apache beam 看下符合不?有 go 的 sdk
2021-08-30 18:38:43 +08:00
回复了 icemanpro 创建的主题 C++ 如何将 list 的值传给函数的可变参数?
2021-08-26 18:56:13 +08:00
回复了 fdgdbr 创建的主题 程序员 一个奇怪的 oracle 分页的问题
2021-04-22 18:38:35 +08:00
回复了 ZoeYn 创建的主题 Python 有没有比较优雅的合并两个列表的方法?
python 的话

from itertools import product
a = [1,2]
b = ['a','b','c']

list(product(a,b))
# [(1, 'a'), (1, 'b'), (1, 'c'), (2, 'a'), (2, 'b'), (2, 'c')]

scala 的话

scala> for {
| a <- List(1, 2)
| b <- List('a', 'b', 'c')
| } yield (a,b)
val res1: List[(Int, Char)] = List((1,a), (1,b), (1,c), (2,a), (2,b), (2,c))
2020-09-04 14:24:53 +08:00
回复了 kvkboy 创建的主题 程序员 Java 程序员想发展第二语言, Python 、Go、JavaScript 改如何选择
Scala/TypeScript/Rust 挑一个呗
2020-08-24 13:33:14 +08:00
回复了 chaos93 创建的主题 问与答 [不懂就问] 请问想做一个监控服务,怎么弄呢
楼上说的对 用 promethus
内部服务器的状态 可以用 node exporter 这个每台机器配好守护进程就完事了,基本不用动
数据库状态的话 看看有没有现成的 exporter 可以用 或者自己按照需求定制个
仪表盘展示用 grafana 告警的话,简单点就用 grafana 自带的,复杂点,就用 alert manager 写些规则就行了
1  2  3  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5181 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 96ms · UTC 09:16 · PVG 17:16 · LAX 01:16 · JFK 04:16
Developed with CodeLauncher
♥ Do have faith in what you're doing.