在表class_group中,list_students_id列包含文本,其中包含逗号分隔的用户在当前组组中的用户ID。 例如:组ID:1 - 组名称:组1 - list_students_id:2,43,45,50 ... 我知道这不是最佳的,但我无法更改数据库结构。 我要查询的组名,如果学生是该组中和我写了下面的代码,我觉得这是不是最佳的如何以另一种方式编写此查询
SELECT user.firstname,user.lastname,user.username,user.alt_id,user.email,class_group.group_name
FROM user LEFT JOIN class_group
ON (class_group.list_students_id LIKE CONCAT(user.id,',%') OR class_group.list_students_id LIKE CONCAT('%,',user.id,',%'))
任何其他方式做到这一点?
感谢的人使用,这为我节省了大约60毫秒。是的,我同意我在这家公司坚持使用这个数据库模式,因为他们说它是针对特定功能进行了优化的,他们不知道我们会在别处使用它,现在更改数据库将需要重构很多代码,所以它有点伤心。 –