使用通配符 - SQL

时间:2010-12-30 02:04:33

标签: sql postgresql

我想在我的(PostgreSQL)数据库中存储wild cards列表。

e.g。

  • Laughing Unicorn v1.*

  • Firefox v4.*

  • jump * start

在这种情况下,*意味着任何价值。


在DB中存储这些值后,我想查询数据库以检查字符串是否与任何模式匹配

例如,我可能想检查Laughing Unicorn v1.8是否与任何行匹配。


有什么想法吗? :)

1 个答案:

答案 0 :(得分:3)

CREATE TABLE patterns (pattern text);
INSERT INTO patterns VALUES ('Laughing Unicorn v1.*'),
                            ('Firefox v4.*'),
                            ('jump * start');
SELECT 'Laughing Unicorn v1.8' 
       LIKE ANY (SELECT replace(pattern, '*', '%') FROM patterns);