Buenas a todos,
Realizo una consulta FULL TEXT para que me haga una búsqueda por varios campos de una tabla. Pues bien, me hace la búsqueda por todos los campos menos por uno, lo cual me parece muy extraño, pero le doy vueltas y no alcanzo a saber el por qué.
La consulta es la siguiente:
datamodule1.ZQuery1.SQL.Clear; datamodule1.ZQuery1.SQL.Add('SELECT ID_USUARIO, EAN, NOMBRE, APELLIDOS,CODIGO_SOCIO,TIPO_USUARIO,'); datamodule1.ZQuery1.SQL.Add('case AUTORIZADO when 1 then :F2 when 0 then :F3 end AS ACCESO,'); datamodule1.ZQuery1.SQL.Add('case CARNET when 1 then :F4 when 0 then :F5 end AS CARNET,'); datamodule1.ZQuery1.SQL.Add('case ESTADO when 1 then :F7 when 0 then :F6 end AS ESTADO'); datamodule1.ZQuery1.SQL.Add('FROM USUARIO'); datamodule1.ZQuery1.SQL.Add('WHERE MATCH(EAN,NOMBRE,APELLIDOS,CODIGO_SOCIO,CIF) AGAINST(:F1 IN BOOLEAN MODE)'); datamodule1.ZQuery1.ParamByName('F1').AsString := '*' + edit1.Text + '*'; datamodule1.ZQuery1.ParamByName('F2').AsString := 'AUTORIZADO'; datamodule1.ZQuery1.ParamByName('F3').AsString := 'DENEGADO'; datamodule1.ZQuery1.ParamByName('F4').AsString := 'SI'; datamodule1.ZQuery1.ParamByName('F5').AsString := 'NO'; datamodule1.ZQuery1.ParamByName('F6').AsString := 'AUSENTE'; datamodule1.ZQuery1.ParamByName('F7').AsString := 'PRESENTE'; datamodule1.ZQuery1.Active := True;
Resulta que la consulta por los campos EAN, NOMBRE, APELLIDOS, Y CIF lo hace perfectamente, sin embargo cuando introduzco un CODIGO_SOCIO no me muestra ningún resultado, y por supuesto, hay datos de ese campo.
Como es una búsqueda FULL TEXT, en engine de la tabla es MyISAM. El índice creado para tal efecto, os lo adjunto en el post.
FULLTEXT.jpg 31,53KB
1 descargas
Muchas gracias por vuestro tiempo.
Un saludo