我正在尝试构建一个查找多个不同内容的SQL查询,我认为类似命令是实现此目的的最佳方法
查询中的行是:
where *field* like 'AB%'
它列出了表格中开始AB的所有实例....
当我尝试添加多个实例但我收到错误消息时,我想做类似以下的事情:
where *field* like ('AB%','CD%','EF%')
因此,我获取了以我提供的文本列表开头的特定条目的字段
有人可以帮帮我吗?
答案 0 :(得分:5)
您想要OR
WHERE field LIKE 'AB%'
OR field LIKE 'CD%'
OR field LIKE 'EF%'
如果您使用其他WHERE
条款标准,则需要使用括号括起OR子句。
希望它有所帮助...
编辑:
发表评论后,您可以尝试在WHERE
条款中使用regular expressions,尤其是REGEXP_LIKE。
(未经测试)的某些内容:
SELECT *
FROM table
WHERE regexp_like(field, '^(AB|CD|EF).*$')
答案 1 :(得分:1)
WHERE *field* LIKE 'AB%' OR *field* LIKE 'CD%' OR *field* LIKE 'EF%'
答案 2 :(得分:0)
如果您使用的是Oracle,可以写:
where regexp_like(t1, '^AB|^CD|^EF')
等
答案 3 :(得分:0)
您可以使用instr功能。如果它在字符串的第一个位置找到你想要的子字符串,它将返回1:
where instr(field,'AB') = 1
OR instr(field,'CD') = 1
OR instr(field,'ED') = 1
答案 4 :(得分:-1)
如果您想使用单个字符串,请尝试使用REGEXP:
WHERE *field* REGEXP 'AB(.*)|CD(.*)|EF(.*)'