小编Luc*_*man的帖子

PostgreSQL 中 LIKE、SIMILAR TO 或正则表达式的模式匹配

我必须编写一个简单的查询,在其中查找以 B 或 D 开头的人名:

SELECT s.name 
FROM spelers s 
WHERE s.name LIKE 'B%' OR s.name LIKE 'D%'
ORDER BY 1
Run Code Online (Sandbox Code Playgroud)

我想知道是否有办法重写它以提高性能。所以我可以避免or和/或like

postgresql index regular-expression pattern-matching string-searching

123
推荐指数
3
解决办法
18万
查看次数

SQL Server:查找列标题

我正在检查数据库服务器,问题是大约有 40 个数据库,每个数据库有数百个表。我正在寻找列名包含特定单词的表。

有没有办法进行搜索来识别这些表?

sql-server

5
推荐指数
1
解决办法
2570
查看次数

防止重复最有效

我正在构建一个应用程序,它将每隔一段时间使用 JSON 获取消息并将这些消息存储在 postgres 数据库中。现在我想防止重复,所以我计算了消息的 sha-512 并将其设置为主键。由于我想防止重复,我可以做两件事:

  1. 从数据库中获取所有散列,并查看何时插入新消息,如果散列已经存在(检查代码)
  2. 使用插入忽略(在 postgres 中可能是更新,因为 postgres 不支持插入忽略)并让数据库处理这些异常

考虑到我可能会一次插入几条消息,我想知道方法 2 是否会查找主键并查看每个插入是否存在,而不是仅使用方法 1 在内存中存储一​​个列表。什么是最多的高效的?

postgresql

5
推荐指数
1
解决办法
2186
查看次数

就像子查询的结果(多个值)

我想要做的是以下概念:

SELECT field1,field2,field3 
FROM table1 
where field3 like '%'+(SELECT distinct field from table2)+'%'
Run Code Online (Sandbox Code Playgroud)

但这是不允许的,因为 like 不接受多个值。如何重写此查询,以便我可以通配符匹配具有来自另一个表的多个结果值的字段?

mysql

2
推荐指数
1
解决办法
1万
查看次数

在 postgres 中显示 2 个字符的所有变体

我将如何在 postgres 中做到这一点:

假设我有一个 x 和 ay,我想显示所有可能的组合:

xx
yy
xy
yx
Run Code Online (Sandbox Code Playgroud)

我怎样才能让 postgres 为我做这件事?

postgresql

1
推荐指数
1
解决办法
346
查看次数

子查询结果的转换失败

我有点不高兴,我必须对数据质量很差的数据库执行查询。我正在尝试评估一个包含日期但被定义为nvarchar. 我以为我可以将值转换为整数,但这失败了,因为日期字段中也有非日期值(随机字母和符号等)。

我决定做的事情如下:

SELECT q.foo, cast( q.bar as int) 
FROM ( SELECT foo,bar FROM table where ISNUMERIC(bar) = 1) as q 
WHERE q.bar > 20140401
Run Code Online (Sandbox Code Playgroud)

但这仍然会导致 nvarchar 值的转换失败'. '。我希望所有值都可以转换为 int,因为它们是数字?

sql-server-2008 sql-server cast

1
推荐指数
1
解决办法
6283
查看次数

双精度的总和给出了奇怪的结果

我一直在计算包含大约 500.000 条双精度数字记录的列的总和。数据库中的所有数字通常应该是句点后面的两个密码。但是,在计算总和后,我得到了 6 个数字:123123123.549977

要么我的数据库中有错误的数据,其中在句点之后有更多数字的记录,要么我遗漏了 sum 函数。

所以我的问题是:

  • sum 函数是否有任何可能导致这种情况的舍入属性?
  • 有没有办法选择句点后包含两个以上数字的所有记录?

postgresql sum

1
推荐指数
1
解决办法
8987
查看次数