mysql - 如何检查逗号分隔的 MySQL 字段中是否存在特定字符串
问题描述
我在逗号分隔的字符串中有一个作者的 MySQL 字段,我想在其中搜索完全匹配的内容。例如,我想返回下表中“Jeff”是共同作者的所有行:
测试 | 合著者 |
---|---|
1 | 杰夫、贝丝、本、吉姆 |
2 | 贝丝、杰弗里、本杰明、吉莫西 |
3 | 本,贝丝,吉姆,杰夫 |
4 | 本,贝丝,杰弗里 |
在此示例中,我只想返回第 1 行和第 3 行 - 因此忽略将“jeff”作为子字符串的“jeffrey”。
理想情况下,我会通过 SQLAlchemy .filter 语法返回它,因为我使用的是 ORM,但 SQL 查询也会真正帮助我。
解决方案
MySQL 中有一个函数FIND_IN_SET()。
SELECT * FROM authors WHERE FIND_IN_SET('jeff', co_authors) > 0;
希望这会对您有所帮助。
推荐阅读
- vue.js - 在Vuetify组件v-file-input上选择同一个文件
- angularjs-directive - 找不到模块“../api.service”或其对应的类型声明.ts(2307)
- html - 如果从未满足条件,如何显示某个 HTML (Angular)
- excel - 如何使用 vba XmlHttpRequest 获取 Google 的搜索建议?
- java - 我如何从组合框中检查选定的值
- css - 单击生物时,网站未在移动设备上加载
- javascript - string.length 实际上不是 JavaScript 中的方法吗?
- python-2.7 - Python 2.7 中的函数注释 - 重写 Python 3 以在 2.7 中工作
- json - 如何解决 json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
- mongodb - Docker一运行就退出