首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用相似%[关键字]%搜索关键字

使用相似%[关键字]%搜索关键字
EN

Stack Overflow用户
提问于 2016-02-09 13:39:22
回答 2查看 122关注 0票数 1

我有一个TransactionDetails表,其中包含TransactionIdTransactionDetail列,这些列用于跟踪应用程序中的所有事务。

TransactionDetail的样本记录如下:

代码语言:javascript
复制
[Blah][Log] 20 Records Inserted
[Blah][Exception] Fails on INSERT INTO
[Blah][Error] Authentication Fails Logged
[Blah][Warning] Null value is eliminated by an aggregate
[Blah][Log] 10 Records Deleted 

我希望筛选只有TransactionDetail日志的列(其他行中也存在日志、日志关键字)。带有[]的搜索查询考虑作为正则表达式模式。我怎样才能跳过它,只得到所需的细节。

我已经尝试过在\转义字符前面的[],但它没有返回任何结果。

代码语言:javascript
复制
SELECT *
FROM TransactionDetails
WHERE TransactionDetail LIKE '%\[Log\]%'

预期结果:

代码语言:javascript
复制
[Blah][Log] 20 Records Inserted
[Blah][Log] 10 Records Deleted 

SQL:http://sqlfiddle.com/#!3/d69f3d/1

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-09 13:42:41

将SQL通配符放入组中,即:

代码语言:javascript
复制
SELECT *
FROM TransactionDetails
WHERE TransactionDetail LIKE '%[[]Log]%'
票数 3
EN

Stack Overflow用户

发布于 2016-02-09 13:53:31

正如jarlh评论中提到的,逃逸选项也有效:

代码语言:javascript
复制
SELECT *
FROM TransactionDetails
WHERE TransactionDetail LIKE '%#[Log#]%' ESCAPE '#'

工作演示: http://sqlfiddle.com/#!3/d69f3d/37

更新:根据t-clausen.dk在此评论中的答复,]不需要escape_character。所以下面的代码也能工作。

代码语言:javascript
复制
SELECT *
FROM TransactionDetails
WHERE TransactionDetail LIKE '%#[Log]%' ESCAPE '#'
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35293531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档