mysql - Sql 为选择创建正确的查询

标签 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'

如何修复它?

最佳答案

使用FIND_IN_SET函数

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

关于mysql - Sql 为选择创建正确的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52914346/

相关文章:

php - 31.65% 的 SQL 查询是 SET NAME。有必要吗?

php - SQL 表未在 PHP 中更新

sql - 选择日期和不包括年份的月份之间的日期

sql - 实际类型的值不正确地比较

sql - 有向图 SQL

sql - 在 SQL 中存储/更新基于 Interval 的数据的最有效方法是什么?

php - 为学校管理系统设计时间表数据库

mysql - 对 4 个表和多个条件的巨大 SQL 查询

php - 当日期和时间位于不同字段时,MySQL 查询选择一些行

java - 如何将 JSP 中的选定行发送到 Java Controller ?