如何在列数据包含分隔符时通过检查选择MySQL中的行

时间:2016-11-13 20:02:33

标签: mysql

我有疑问。如果我有用户表,列名称为freinds。 我希望在具有此值的列朋友中使用一些用户ID:1 | 2 | 45 | 18。 这意味着例如用户id = 5有4个这些id为1 | 2 | 45 | 18的freinds。 我不想在这种情况下使用两张桌子。

如果用户ID为5的朋友,如何选择每个用户数据? 在PHP中,我们为每个分隔符切片功能。 我可以为此目标设置分隔符,或者我应该在MySQL中使用两个表用户和朋友吗?

1 个答案:

答案 0 :(得分:1)

这是一个非常糟糕的情况,特别是如果你继承了一个有这样一个计划的数据库,但找到你可以使用的朋友:

SELECT friend.*
FROM user u 
left join user friend on  concat('|', o.friends, '|') like concat('%|', friend.id, '|%')

where u.id = 5;