- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 pgAdmin 上查询时偶然发现了这种奇怪的行为。
我已连接到运行 PostgreSQL 9.1.9 的服务器。
我有一个名为 messages 的表,其定义如下:
ghareh@godot:~$ psql
psql (9.1.9)
Type "help" for help.
ghareh=# \d messages
Table "public.messages"
Column | Type | Modifiers
---------------+-----------------------------+---------------------------------
messageid | character varying(200) | not null
senderaliasid | integer | not null
referenceid | character varying(200) | default NULL::character varying
recipaliasid | integer |
datetime | timestamp(2) with time zone | not null
subject | character varying(512) | not null
body | text | not null
listid | integer |
Indexes:
"messages_pkey" PRIMARY KEY, btree (messageid)
"messages_datetime_idx" btree (datetime)
"recipaliasid_idx" btree (recipaliasid)
"referenceid_idx" btree (referenceid)
"senderaliasid_idx" btree (senderaliasid)
Foreign-key constraints:
"messages_listid_fkey" FOREIGN KEY (listid) REFERENCES lists(listid)
"messages_recip_fkey" FOREIGN KEY (recipaliasid, listid) REFERENCES aliases(aliasid, listid)
"messages_sender_fkey" FOREIGN KEY (senderaliasid, listid) REFERENCES aliases(aliasid, listid)
Referenced by:
TABLE "messages_attachments" CONSTRAINT "pkfkmid" FOREIGN KEY (messageid) REFERENCES messages(messageid)
我的问题涉及列、body
和 subject
。
我有一个生成一组结果的查询。然后,为了优化我的查询,我添加了术语:where body like '%JSON%'
即 body 包含字符串 'JSON' 的结果子集。
我得到了一些包含这个词的结果,还有一些没有!但是,如果我搜索任意字符串,结果就可以了。我检查了一下,发现查询不仅搜索正文列,还搜索主题列,这太疯狂了。
这是我的初始查询:
select * from messages where messageid = '44BC310F.1090305@torrez.us'
返回 1 行:
messageid: "44BC310F.1090305@torrez.us";
senderaliasid: 13777;
referenceid: "7edfeeef0607171746r7d708067g15c77c3aa0ef9158@mail.gmail.com";
recipaliasid: ;
datetime: "2006-07-17 20:53:35-07";
listid: 251;
subject: "Re: svn commit: r422930 - /incubator/abdera/java/trunk/extensions/src/main/java/org/apache/abdera/ext/json/JSONWriter.java";
body: "busted! thanks for the thorough review.
-Elias
Garrett Rooney wrote:
> On 7/17/06, eliast@apache.org <eliast@apache.org> wrote:
>> Author: eliast
>> Date: Mon Jul 17 17:44:10 2006
>> New Revision: 422930
>>
>> URL: http://svn.apache.org/viewvc?rev=422930 (...)"
如果我搜索:
select * from messages
where messageid = '44BC310F.1090305@torrez.us'
and body like '%JSON%'
我应该得不到任何结果,因为体内没有。但我仍然返回同一行 - 这似乎是因为“JSON”在 subject
?
我什至试过这个:
select * from messages
where messageid = '44BC310F.1090305@torrez.us'
and body like '%incubator/abdera/java/trunk/extensions/src/main/java/org/apache/abdera/ext/json/JSONWriter.java%'
我仍然回到了同一行。我很困惑。
我试图在 sqlfiddle.com 上重现结果,但没有成功。在那里,我得到了 sql 选择查询的预期内容:
http://sqlfiddle.com/#!1/ec74c/4
最佳答案
您无法在 SQL Fiddle 上重现相同的效果。
我在 Postgres 9.1.13 (always upgrade to the latest point release!) 中重新创建了您的表,并在 pgAdmin(当前版本 1.18.1)中运行了查询。 我无法重现该问题。
我不明白 pgAdmin 如何在这方面发挥作用 - 除非您只选择了查询的一部分,而没有意识到这种影响:
pgAdmin shortcuts to execute scripts
或者您可能会被“每列的最大字符数”设置所愚弄,该设置会截断显示中的长值,将匹配项隐藏在截断的部分中,例如 @IMSoP suggested in his comment .检查 File -> Options ...
如果不是这样,除非我们正在处理错别字或不在您的问题中的情况,否则这将表明您的数据库中出现了某些问题。
在索引损坏的简单情况下,REINDEX TABLE
可能会成功:
REINDEX TABLE messages;
但是,仔细观察,我没有看到可能是这里的罪魁祸首的索引。
损坏的系统目录? 先读这个:
http://wiki.postgresql.org/wiki/Corruption
然后阅读Notes section for REINDEX
并从 shell 运行:
$ export PGOPTIONS="-P"
$ psql broken_db
...
broken_db=> REINDEX DATABASE broken_db;
broken_db=> \q
损坏通常表示您的硬件存在问题。磁盘故障或其他问题。跟进......
关于sql - pgAdmin III 错误行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23553887/
大多数 GUI SQL 控制台允许使用如下参数/占位符 SELECT * FROM USERS WHERE USER_NAME = :USER_NAME; 您通常(例如 Toad、IntelliJ 等
如何在计算机之间(在Windows中)在pgadmin 4.2之间导入/导出服务器列表? 我找到了有关注册表的pgadmin 3的一些链接。 4也一样。 pgAdmin - Sharing DB Co
知道 pgAdmin III 是一个连接到 postgresql 服务器的客户端 postgresql,我有两个问题: pgAdmin III 是否可以自动刷新其显示的数据?如果是这样,时间间隔是多少
我有一个 posgreSQL 数据库,我正在使用 pgAdmin III 来使用它。我创建了一个名为 PrimaryKeySequence 的序列。 现在我想使用这个序列作为表中主键字段的默认值。我尝
在 pgAdmin 3 中,我可以通过以下方式自定义服务器配置 (.config): Tools -> Server configuration -> postgresql.config -> cha
我不确定如何在 pgAdmin 中激活此选项,但我不知道如何删除它。 每次我打开 pgAdmin 时,它都会遍历每个查询,这意味着我必须等待几分钟才能再次开始查询。 有人知道怎么去掉吗? 非常感谢!
我已阅读此处列出的文章: How to set connection timeout value for pgAdmin? 很多次,但我仍然不知道在哪里设置 connection_timeout 的配
如何在 pgadmin 中更改这些颜色?单击颜色不会更改或提示 RGB 选择。我在设置时无意中这样做了,但现在它让我很困扰。 最佳答案 您需要先断开与服务器的连接,然后才能单击颜色。将打开一个提示,您
我正在尝试查询我连接到的远程数据库,但是使用查询工具“连接”到数据库时遇到问题。查询工具打开,但“插头”图标保持红色并且似乎没有连接到数据库(见下图)。 我不确定这是否是描述它的最佳方式,但希望所附图
我想在 Chrome 中有一个书签来打开 pgAdmin 4。唯一的问题是,似乎每次 pgAdmin 4 本身启动时,它都会选择不同的端口(通常这不是问题,因为它会为您打开一个选项卡直接打开,但如果我
我已经使用 pgAdmin III 大约三年了,但我们现在被迫在我们的新 PC 上使用 pgAdmin 4。我缺少一些功能,而且我无法在查询工具的文档中找到这些问题的任何答案,所以我猜也许我想做的事情
刚刚在 Windows 盒子 8.3.14-1 中安装了 postgres,启动了 pgAdmin,它是我的本地语言 (PT),而不是我想要的英语。 如何更改此设置? (请注意:lc_messages
我想在 Chrome 中有一个书签来打开 pgAdmin 4。唯一的问题是,似乎每次 pgAdmin 4 本身启动时,它都会选择不同的端口(通常这不是问题,因为它会为您打开一个选项卡直接打开,但如果我
我已经使用 pgAdmin III 大约三年了,但我们现在被迫在我们的新 PC 上使用 pgAdmin 4。我缺少一些功能,而且我无法在查询工具的文档中找到这些问题的任何答案,所以我猜也许我想做的事情
如何停止 pgadmin 4 进程?我运行 pgadmin 4 下一个方法: python3/usr/local/pgAdmin4.py 我的想法是使用 Ctrl-c。 最佳答案 如果您在 mac O
每次升级 PgAdmin 4(目前为 1.5 版)时,我们都会丢失所有服务器定义以及其他配置详细信息。当一个人必须处理十几台服务器时,这非常烦人:) 我无法找到服务器定义的存储位置,所以在安装新版本之
我已经下载了 PostgreSQL 10.4,当我启动它时,pgAdmin4 在网络浏览器中打开。我想使用桌面模式,但不知道如何在 Windows 7 上使用。 有什么帮助吗? 最佳答案 我面临着同样
我在 Windows 10 专业版机器上从 pgAdmin 4 v2.1 升级到 v3。 我可以选择在安装的最后一步打开 pgAdmin。 我点击是,它会使用我的默认浏览器自动打开它。我注意到 url
我刚刚安装了最新的 pgAdmin (4.7),每当我启动它时,我都会收到这个奇怪的空白弹出窗口,我无法删除它: 我可以很好地使用该应用程序,我只需要把那个空窗口移到一边,这很烦人。我使用的是 Fir
我最近在 PGAdmin III 中发现,您可以通过按 Ctrl+Space 自动完成/激活智能感知。然而,这似乎只适用于表格。有没有办法也触发列名的智能感知? 最佳答案 pgAdmin 4 似乎在使
我是一名优秀的程序员,十分优秀!