SQL 在 LIKE 函数中使用正则表达式查询

SQL Query with Regular Expression in LIKE function

我有一个要求,我想过滤 table 中的所有行,这些行在描述中有关键字 'Risk',但没有 'F Risk'。例如,在以下测试数据中,查询应该 select 行 1、5、6 和 7。

但是,当我使用下面的查询时,它删除了 id 1(因为它满足条件的后半部分)并且只返回 5,6 和 7。

SELECT *
FROM TestDesc
WHERE ([desc] LIKE '%Risk%' AND [desc] NOT LIKE '%F Risk%')

我相信我必须使用正则表达式才能达到预期的结果,但我对正则表达式不是很熟悉。

任何help/suggestion将不胜感激。谢谢!

我认为您需要调整对“F Risk”的搜索:

SELECT *
FROM TestDesc
WHERE [desc] LIKE '%Risk%' AND [desc] NOT LIKE '%[ (]F Risk%'