mysql查询

f87krz0w  于 2021-08-13  发布在  Java
关注(0)|答案(1)|浏览(161)

我们有一个表“students”,这个表有文本列“description”。此列包含学生简介。现在,假设我们有两个词a)lorem b)ipsum。
我们想让所有的学生,这些词将遵循以下标准:
答。描述必须包含单词:lorem
b。就在“lorem”这个词之后,在接下来的20个字符中,如果还有其他词“ipsum”存在,那么mysql就把那个学生还给我。
我对mysql的了解一般,但不能按照上述条件进行查询。有没有人可以共享一个mysql查询,我可以通过它来获取基于上述条件的记录。
提前谢谢。

uplii1fm

uplii1fm1#

可以使用正则表达式:

where description regexp 'lorem.{0,19}ipsum'

现在还不清楚你是否想要所有的 'ipsum' 在接下来的20个字符或刚刚开始。这假设您希望它在接下来的20年内开始。您可以调整 19 如果你想要更多的 ipsum 在20个字符里。
如果要精确匹配单词,请使用单词分隔符:

where description regexp 'lorem.{0,19}[^a-zA-Z]ipsum[^a-zA-Z]'

对于单词分隔符,您可能有更好的表达式。mysql最近更换了正则表达式库,所以我不太愿意使用像 \b .

相关问题