首页 > 解决方案 > 如何检查逗号分隔的 MySQL 字段中是否存在特定字符串

问题描述

我在逗号分隔的字符串中有一个作者的 MySQL 字段,我想在其中搜索完全匹配的内容。例如,我想返回下表中“Jeff”是共同作者的所有行:

测试 合著者
1 杰夫、贝丝、本、吉姆
2 贝丝、杰弗里、本杰明、吉莫西
3 本,贝丝,吉姆,杰夫
4 本,贝丝,杰弗里

在此示例中,我只想返回第 1 行和第 3 行 - 因此忽略将“jeff”作为子字符串的“jeffrey”。

理想情况下,我会通过 SQLAlchemy .filter 语法返回它,因为我使用的是 ORM,但 SQL 查询也会真正帮助我。

标签: mysqlsqlsqlalchemy

解决方案


MySQL 中有一个函数FIND_IN_SET()

SELECT * FROM authors WHERE FIND_IN_SET('jeff', co_authors) > 0;

希望这会对您有所帮助。


推荐阅读