如何根据字符串组合获取数据?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何根据字符串组合获取数据?相关的知识,希望对你有一定的参考价值。

我有数据表记录,

id, title
1, This is test the thunder
2, This is test
3, This is Testing
4, whatever
5, this is alkdjlsad asdjasjdlad
6, test
7, thunder

我想以这样的方式查询:它将获取除2,3和6之外的所有记录。说明:第2和第3条记录仅包含test,第1条记录包含test但是有thunder。

如果任何带有'test'和'thunder'的记录存在,则接受此类记录,但如果纯粹使用'test'则忽略此类记录,

预期产量:

id, title
1, This is test the thunder
4, whatever
5, this is alkdjlsad asdjasjdlad
7, thunder

我想不出超出我的期望。

请帮我创建这个查询。

答案

尝试在这里使用REGEXP

SELECT *
FROM yourTable
WHERE
    title NOT REGEXP 'test' OR
    (title REGEXP 'test' AND title REGEXP '[[:<:]]thunder[[:>:]]');

enter image description here

Demo

这里的逻辑是找到任何标题,其标题不包含子字符串test,或包含test,但也包含thunder。我的直觉反应是在test周围设置字边界,但看起来你实际上只是想在标题中的任何地方找到子字符串test

以上是关于如何根据字符串组合获取数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Firebase 获取数据到 Recyclerview 中的片段?

如何组合绑定片段而不将它们包装在 XML 文字中

如何从设置中获取数据并发送到此片段

48个值得掌握的JavaScript代码片段(上)

Relay.js 没有正确解析组合片段

如何从该片段中的 onItemSelectedListener 中获取微调器单击的项目?