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

oxiaedzo  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(297)

我有带数据的表格记录,

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之外的所有记录解释:第二、第三和第六条记录包含唯一的测试,第一条记录包含测试,但带有thunder。
如果存在任何带有“test”和“thunder”的记录来接受该记录,但如果纯粹带有“test”,则忽略该记录,
预期产量:

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

我不能超出我的期望。
请帮助我创建此查询。

jjhzyzn0

jjhzyzn01#

尝试使用 REGEXP 在这里:

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

演示

这里的逻辑是查找标题不包含子字符串的任何记录 test ,或包含 test ,但也包含 thunder . 我本能的React是给词加上界限 test ,但看起来您实际上只是想找到子字符串 test 标题中的任何地方。

相关问题