在 SQL 中使用正则表达式

Using regex in SQL

我 运行 遇到了一个问题,我不能再靠自己了。 我目前有一个数据库,基本上列出了我手机上的不同应用程序。

应用程序与状态一起列在同一数据库列中,这意味着我用“;”将应用程序与状态分开我用“,”分隔不同的应用程序。

示例:

ipboard,4.83->6.3,Running;testAcap,6.9-0,Stopped;
ipboard,2.3333->5.366,Stopped;Videostream,1.2,Stopped;

现在,我将如何找到所有当前作为应用程序停止的 ipboards?如您所见,由于版本不同,状态之前的字符串的长度可能会有所不同。而且我不想要所有已停止的列表,在这种情况下只需要 ipboard。

到目前为止,我糟糕的查询选择了所有带有 ipboard 的字符串(所有字符串都没有):

select *
  from acaps
  where acaps like '%ipb%'

对我来说,下一个合乎逻辑的事情应该是这样的:

select *
  from acaps
  where acaps like '%ipb%'
  and subshitblabla where "Stopped" after the "," after the ipboard string.

有人知道如何让它工作吗?

假设 col_name 是您要用于过滤器的列 如果我没记错的话,您可以像

 select *
  from acaps
  where acaps.col_name like 'ipb%Stopped'

感谢大家的关注。找到适合我的解决方案,张贴在这里供其他人参考。

SELECT * FROM `acaps`
where acaps REGEXP '(ipboard)[,][0-9\-\>\.]*[,](Stopped)\;.*'