mysql - 如何在 MySQL 列数组中查找 id

标签 mysql sql select join find-in-set

公司表结构:

(`id`=`1`, `name`=`CompanyName`, `members`=`3,52,134,21`)

members 列中的数字是添加到该公司的用户标识。

id = 3 OR 52 OR 134 OR 21 的用户登录到上面的行时,应该使用 MySQL 查询返回。

这是否可以通过查询实现,还是我必须编辑我的表结构?

最佳答案

尝试:

SELECT * FROM tbl_name WHERE FIND_IN_SET('3',members);

注意:切勿以逗号分隔格式存储数据。如果还不晚,那就再做一张表,把结构归一化。通过对结构进行规范化,通过对列进行索引,可以轻松快速地进行搜索。

表名:company_users

pk_id    member_id   company_id(foriegn_key of company_table)
1          3           1
2          52          1
3          21          1

关于mysql - 如何在 MySQL 列数组中查找 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34353434/

相关文章:

MySQL 是日期范围之间的日期

mysql - 获取 MySQL 中字符串字段的 SUM

SQL Server 按最接近零的值排序

mysql - 选择两个月之间有年份差异的记录

mysql - 表别名不适用于连接

mysql - "Alter ignore"+ "unique key"去重,mysql和sql server

SQL 运算符优先级

mysql - 当我查询 MySQL 并尝试通过 AWS SES 发送电子邮件时,Node Lambda 超时

mysql - UTF-8字符有问题;我看到的不是我存储的

mysql - 第一个 LEFT JOIN 是否适用于多个 JOIN?