Hello,
I have encounter the following error when trying to execute the following query:
SELECT *, (
MATCH(a.x) AGAINST ( '2311' IN BOOLEAN MODE )
+
MATCH(a.y) AGAINST ( '2311' IN BOOLEAN MODE )
) AS score
FROM
a
JOIN
b
ON b.id = a.id
WHERE
(
b.status = 'WELCOMED'
)
AND (
MATCH(a.serial_num) AGAINST ( '2311' IN BOOLEAN MODE )
OR MATCH(a.additional_info) AGAINST ( '2311' IN BOOLEAN MODE )
)
ORDER BY
score LIMIT 0,10 ;
Error Code: 1690. DOUBLE value is out of range in '((match `foo`.`a`.`serial_num` against ('2311' in boolean mode)) + (match `foo`.`a`.`additional_info` against ('2311' in boolean mode)))' 0.000 sec
This is reproduced at:
innodb_version 5.7.11
protocol_version 10
slave_type_conversions
tls_version TLSv1,TLSv1.1
version 5.7.11-log
version_comment MySQL Community Server (GPL)
version_compile_machine x86_64
version_compile_os Win64
I could not understand what is the problem with this? I suspect that the values return by match when added, are out of bound of the double on select. On exclusive execution of two additive factors the results are ok without any error.
Thank you very much and i appreciate your help