首页 > 解决方案 > 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'

我该如何解决?

标签: mysqlsql

解决方案


使用FIND_IN_SET功能

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

推荐阅读