SQL创建正确的查询以供选择

时间:2018-10-21 10:29:59

标签: mysql sql

我有餐桌笔记。有列'tags'(varchar(255))。例如,数据为:

1)Content='Note1', tags='18,20' 
2)Content='Note2', tags='18',
3)Content='Note3', tags='45',
4)Content='Note4', tags='118,75'

我需要编写sql来选择所有标记为'18'的行,因此结果必须是这样的:

1)Content='Note1', tags='18,20' 
2)Content='Note2', tags='18',

我尝试编写sql:

SELECT * FROM `notes` WHERE tags LIKE ('%18%')

但是结果是错误的:

1)Content='Note1', tags='18,20' 
2)Content='Note2', tags='18',
4)Content='Note4', tags='118,75'

我该如何解决?

2 个答案:

答案 0 :(得分:1)

使用FIND_IN_SET函数

 SELECT * FROM `notes` WHERE FIND_IN_SET('18', tags );

答案 1 :(得分:-1)

您必须创建自己的SPLIT function并使用它而不是LIKE