我有餐桌笔记。有列'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'
我该如何解决?
答案 0 :(得分:1)
使用FIND_IN_SET
函数
SELECT * FROM `notes` WHERE FIND_IN_SET('18', tags );
答案 1 :(得分:-1)
您必须创建自己的SPLIT function
并使用它而不是LIKE