LOCATE
和FIND_IN_SET
函數無法按預期工作。如果它是0值,每個函數的結果應該是1。查詢無法找到以逗號分隔的字段中的子串
VALUES
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
查詢結果是這樣的,但定位和FIND_IN_SET應該是返回一個非零值。他們爲什麼不是?
idCurso persona cnos idCno cmp1 cmp2
____________________________________________________
453 20386 ,,305,608, ,305, 0 0