Mysql SQL:在一列中搜索空格分隔的单词

Mysql SQL:在一列中搜索空格分隔的单词,mysql,sql,Mysql,Sql,我有一列包含空格分隔的单词: | tags | -------------------------- | python javascript java | 现在我想选择具有特定单词的行 从表中选择*,其中['java'位于标记中] 请注意,当我使用java选择时,不应选择仅包含javascript的行,这意味着它必须是字级匹配 谢谢您可以使用在集合中查找来获得正确的行。因为它使用逗号分隔符,所以需要用逗号替换空格以获得正确的结果 SELECT * FROM

我有一列包含空格分隔的单词:

|         tags           |
--------------------------
| python javascript java | 
现在我想选择具有特定单词的行

从表中选择*,其中[
'java'
位于标记中]

请注意,当我使用
java
选择时,不应选择仅包含
javascript
的行,这意味着它必须是字级匹配


谢谢

您可以使用
在集合中查找
来获得正确的行。因为它使用逗号分隔符,所以需要用逗号替换空格以获得正确的结果

SELECT *
FROM table1
WHERE FIND_IN_SET('java', REPLACE(tags, ' ', ',')) > 0

也就是说,使用您正在显示的表格式的查询将无法使用索引,并且在数据量增加时将非常缓慢。您最好使用每标记一行,这样您就可以使用简单的equals匹配。这样,将使用索引,您将获得相当大的性能提升


.

我最初考虑使用FIND_IN_SET,但simple LIKE应该满足您的期望

select * from tableA where tags LIKE '%java%'

我认为这将选择javascript