繁体   English   中英

在SQL中使用像通配符获取模式

[英]getting a pattern using like,wildcards in sql

我有两列visit和visit_sequence,

Example table

Visit         Visit_sequence
1             43:65:34:21:343
2             22:78:113:37
3             43:465:72:21:1187:542

The semi colon is present in the field.

现在,如果我要检查某个访问是否具有包含数字43、65和21的访问序列,应该使用什么条件(最短条件)?

如果我写

 case when visit_sequence like '%:43:%:65:%:21:%'

要么

 case when visit_sequence like '%43%:%65%:%21%'

这些绝对不会工作。 我不需要整个代码,仅需要like之后的部分。

select *
  from visits
 where ':'+visit_sequence+':' like '%:43:%'
   and ':'+visit_sequence+':' like '%:65:%'
   and ':'+visit_sequence+':' like '%:21:%'

我希望您有一张小桌子,因为针对此问题引发的任何类型的查询,您的非规范化存储格式都无法正常运行。

如果您使用的是ORACLE,请尝试REGEXP_LIKE

  select *
  from visits
  where REGEXP_LIKE (visit_sequence, '43:.*65:.*21')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM