および関数が期待どおりLOCATE
にFIND_IN_SET
機能しません。0値の場合、各関数の結果は1になります。
値
concat(',',t_insercion.fkCno2011,',')
値は ,305,
v_curso_cnos.cnos
値は ,,305,606,
関数
locate(v_curso_cnos.cnos, concat(',',t_insercion.fkCno2011,','))
find_in_set(concat(',',t_insercion.fkCno2011,','), v_curso_cnos.cnos)
そして、クエリは次のとおりです。
SELECT r_cursoalumno.fkCurso AS idCurso,
r_cursoalumno.fkPersona AS persona,
v_curso_cnos.cnos,
concat(',',t_insercion.fkCno2011,',') as idCno,
locate(v_curso_cnos.cnos, concat(',',t_insercion.fkCno2011,',')) as cmp1,
find_in_set(concat(',',t_insercion.fkCno2011,','), v_curso_cnos.cnos) as cmp2
FROM v_curso_cnos
INNER JOIN (r_cursoalumno
LEFT JOIN t_insercion ON r_cursoalumno.fkPersona = t_insercion.fkPersona)
ON v_curso_cnos.id = r_cursoalumno.fkCurso
WHERE r_cursoalumno.fkPersona = 20386
クエリ結果はこれですが、locateとfind_in_setはゼロ以外の値を返すはずです。なぜそうではないのですか?
idCurso persona cnos idCno cmp1 cmp2
____________________________________________________
453 20386 ,,305,608, ,305, 0 0