"Where"语句:匹配单个单词(不是子字符串)

Mel*_*lon 3 mysql sql database

我正在使用MySQL.

我的数据库中有一个汽车表,该表中有一name列.

假设name表的列包含值:

 +----------+
 |   name   |
 +----------+
 | AAA BB   |
  ----------
 | CC D BB  |
  ----------
 | OO kk BB |
  ----------
 | PP B CC  |
  ----------
Run Code Online (Sandbox Code Playgroud)

我想搜索name列值包含单词 " BB "(不是子字符串)的表,实现此目的的SQL命令是什么?

我知道LIKE,但它用于匹配包含的子字符串,而不是字匹配.

PS

我的表包含大数据.所以,我可能需要比使用LIKE更有效的方法

name列中的值是随机字符串.

请不要让我使用IN(...),因为该列中的值是不可预测的.

Mar*_*ers 5

试试这个WHERE子句:

WHERE name LIKE '% BB %'
OR    name LIKE 'BB %'
OR    name LIKE '% BB'
OR    name = 'BB'
Run Code Online (Sandbox Code Playgroud)

请注意,如果您的表很大,这将无法正常运行.如果您需要更好的性能,您可能还需要考虑全文搜索.