mysql 中 FIND_IN_SET 的使用
使用场景
表A和表B相互关联,是一对多的关系,A中一个记录对应多个B中的记录。
要求在不建立中间表的情况下,通过A中的一个字段可以找到多个B中的记录。
示例
A:
id | fid | family
1 | 1,2,3 | English
B:
id | name
1 | a
2 | b
3 | c
表A中有一条记录,记录了English家族的三个字母,通过fid指向表B,可以查找到这三个字母的name值。
sql语句
select * from B where FIND_IN_SET(id,(select fid from A where family = 'English'))
小收获
这里不能用in
,谁试谁知道。
mysql查询字符转换用CAST(id as varhcar(255))
记得一定要带上255指定长度,不然会报错。