MYSQL查询语法 - 带有trim的子查询

时间:2014-12-19 06:12:49

标签: mysql sql select subquery trim

我有2张桌子

表1 - > msqt_subjects

  id  category 
 - 1   maths
 - 2   physics
 - 3   history
表2 - > msqt_class

  id  subjects
 - 1   ,1,2,3,

我的查询是

  

id中选择categorymsqt_subjects id IN(从subjects中选择TRIM(BOTH','FROM msqt_classid = 1)

它只返回一行,实际上它必须返回3行。

当我单独运行子查询时,结果为1,2,3

我喜欢使用单个查询而不是单独的查询。

查询是否正确?

1 个答案:

答案 0 :(得分:0)

试试这个:

SELECT ms.id, ms.category 
FROM msqt_subjects ms 
INNER JOIN msqt_class mc ON mc.subjects LIKE CONCAT('%,', ms.id, ',%')
WHERE mc.id = 1;

SELECT ms.id, ms.category 
FROM msqt_subjects ms 
INNER JOIN msqt_class mc ON FIND_IN_SET(ms.id, TRIM(BOTH ',' FROM mc.subjects))
WHERE mc.id = 1;