【发布时间】:2015-12-28 12:18:10
【问题描述】:
我一直在尝试一些非常过分的事情,希望您对此发表意见。
我正在使用 Postgres 数据库来存储一些产品信息,主要是他们的家庭,使用 4 位代码。 例如,产品 A 可以有 1000、1001 和 1002,而产品 B 有 1003 和 1004。
我想用代码检索家庭。
我可以做两张表,一张包含姓氏、钥匙和其他信息,另一张包含所有代码和所需的家庭链接。然后,像这样的请求:
select familyname
from family, familycode
where family.pk = familycode.fk_family AND familycode = '1000'
会做的伎俩 但由于我很贪心,我想知道是否不可能使用正则表达式并使用一个主键、一个标签和一个正则表达式来提供代码。
按照前面的例子,我会有类似的东西:
'pk' 'productA' '100[0-2]{1}'
'pk' 'productB' '100[3-4]{1}'
但是,它真的可以通过输入“1000”作为代码的单个请求返回我的“productA”吗?
感谢您的关注和回答
最好的问候
编辑:
我正在添加一个工作流程示例 我有一个参考表族,包含一个 id、一个标签和一个代码。
'pk' 'productA' 'code1'
'pk' 'productB' 'code2'
取决于家庭,我的软将采取行动。如果我有产品 A,然后我将在另一个参考表中检索链接到该产品的操作
假设下面的步骤是
从 table_operation where productref = 'productA' 中选择操作
要进行手术,我需要家人。为了得到家人,我只有代码。
由于一个家庭有很多不同的代码,我考虑在表中使用正则表达式。就是这样
【问题讨论】:
-
你不能只选择产品代码 = 1003 用于产品 B 的产品吗?
-
posgrès是指 PostgreSQL(或只是 Postgres)吗? -
@dustmouse :不幸的是,我的目标是用产品代码检索家庭。我在这里举了一个简单的例子,但是我可以有例如产品 A 的 1002、1004 和产品 B 的 1003、1005。我正在尝试使用真正的泛型请求来用于任何产品。所以我不能做类似“如果结果是1002,那么使用请求A,否则如果结果是1003,使用请求B”等等。我在这里使用大约 30 种不同的产品,它们可以有 4 到 5 个不同的代码。
-
@a_horse_with_no_name : 存储库是 postgres BD,但我使用 Qt 应用程序中的经典 SQL 来调用它们
-
where some_column ~ regex_column: postgresql.org/docs/current/static/…
标签: sql regex postgresql