gpt4 book ai didi

sql - 检查整个表的单个值

转载 作者:行者123 更新时间:2023-11-29 12:00:59 25 4
gpt4 key购买 nike

背景:我正在将数据库表转换为不支持空值的格式。我想用任意数字替换空值,以便我的应用程序可以支持空值。

问题:我想在我的整个表格中搜索一个值(例如“999999”)以确保它没有出现在表格中。我可以编写一个脚本来单独测试每一列,但我想知道是否有一种方法可以在不枚举每个字段的情况下在纯 sql 中执行此操作。这可能吗?

最佳答案

您可以使用 PostgreSQL 类型系统的一个特殊功能:

SELECT *
FROM tbl t
WHERE t::text LIKE '%999999%';

有一个composite type为您在 PostgreSQL 中创建的每个表使用相同的名称。 PostgreSQL 中的每种类型都有一个text 表示(用于输入/输出值)。

因此,您可以将整行转换为 text 并且如果字符串 '999999' 包含在任何列中(准确地说是它的 text 表示)它是保证在上面的查询中显示。

但是,如果 Postgres 用于行表示的分隔符和/或修饰符可以成为搜索词的一部分,则您不能完全排除误报。这只是非常不太可能。肯定不是您的搜索词“999999”的情况。

最近在 codereview.SE 上有一个非常相似的问题。我添加了 some more explanation in my answer there .

关于sql - 检查整个表的单个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9994830/

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