gpt4 book ai didi

sql - Postgres SELECT 不显示正确的结果

转载 作者:行者123 更新时间:2023-11-29 13:45:04 24 4
gpt4 key购买 nike

假设我的数据库中有一个包含 Id、Name、Code 列的 Order 表。当我执行时,假设

 SELECT * FROM Order

我得到两条记录:

Id,Name,Code
1,FirstOrder,165y
2,SecondOrder,165y

两个订单代码相同,一切正常!但是当我尝试通过代码查找时:

SELECT * from ORDER where code = '165y'

结果我只有一行:

Id,Name,Code
1,FirstOrder,165y

二阶没有显示,尽管它有相同的代码。但如果我尝试这样做:

SELECT * from Order where lower(code) = '165y'

我又得到两行:

    Id,Name,Code
1,FirstOrder,165y
2,SecondOrder,165y

在我看来,这些行具有相同的代码值:“165y”,但看起来 postgres 在某些方面有所不同。Postgres 版本 - 9.3.17,代码列类型 - varchar(50)。

可能是什么问题?我什至不知道去哪里搜索。需要帮助。

最佳答案

问题已部分解决。造成这种行为的主要原因是像搜索一样

SELECT * from Order where lower(code) = '165y'

查询时使用Seq Scan

SELECT * from ORDER where code = '165y'

使用代码字段上的唯一索引通过位图索引扫描进行搜索。

我仍然不知道唯一索引怎么会出现重复值。所以我刚刚删除了这个索引,清理了重复项并再次创建了索引。

关于sql - Postgres SELECT 不显示正确的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49938379/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com