我的问题很简单。
在DB2数据库中,我有我的表
Table (Id integer, name varchar)
我想选择名称为'ac1%'或'ac2%'或'ac3%'的条目,以便哪些名称与正则表达式匹配
'^ac[123]*'
是否有任何方法可以在没有写入的情况下使用此选择查
WHERE name LIKE 'ac1%' OR name LIKE 'ac2%' OR name LIKE 'ac2%'
可能最有效的方法是:
where name >= 'ac1' and
name < 'ac4'
你也可以使用regular expressions:
where regexp_like(name, '^ac[1-3]')
根据您的Db2服务器平台(Z / OS,i系列,Linux / Unix / Windows)和Db2版本,您可以使用REGEXP_LIKE功能。这允许在SQL中使用正则表达式。
请参阅文档和示例here。
我认为下面的工作原因如果REGEXP_LIKE(col,'[0-9]{3}-[0-9]{3}-[0-9]{2}')
包含任何0到9的值,col
将始终返回true
SELECT * FROM table1
WHERE REGEXP_LIKE(name,'[1-3]')