MySQL 语法错误: '== 0' 在子查询中的使用

错误信息:

java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '== 0 )caseAss ORDER BY caseAss.caseCode ASC ) tmp_count' at line 63

问题:

错误发生在子查询 (select count(*) from lts_file_info where LINK_CODE = a.id) == 0 中,原因是 MySQL 中的比较运算符应该使用 = 而不是 ==

解决方法:

将子查询中的 == 替换为 = 即可解决该错误。

修改后的 SQL 语句:

SELECT COUNT(0)
FROM (
    SELECT DISTINCT caseAss.*
    FROM (
        SELECT
            a.SCENA_CODE AS 'scenaCode',
            a.CASE_CODE AS 'caseCode',
            a.ROAD_CODE AS 'linkRoads',
            a.CASE_DESCRIBE AS 'caseDescribe',
            a.CASE_TYPE AS 'caseType',
            ltctn.TYPE_NAME AS 'caseTypeName',
            a.TEST_OBJECTIVE AS 'testObjective',
            a.TEST_CONDITION AS 'testCondition',
            a.CREATE_USER AS 'createUser',
            a.UPDATE_USER AS 'updateUser',
            a.remark AS 'remark',
            a.id AS 'id',
            a.create_by AS 'createBy',
            a.create_dept AS 'createDept',
            a.create_time AS 'createTime',
            a.update_by AS 'updateBy',
            a.update_time AS 'updateTime',
            a.update_ip AS 'updateIp',
            a.version AS 'version',
            a.del_flag AS 'delFlag',
            lsm.SCENA_CODE AS 'name',
            ltctn.PARENT_NAMES AS 'caseTypeNames'
        FROM
            lts_test_case_manage a
            LEFT JOIN lts_test_case_type_new ltctn ON a.CASE_TYPE = ltctn.id
            LEFT JOIN lts_scena_manage lsm ON a.SCENA_CODE = lsm.id
            LEFT JOIN sys_user t ON FIND_IN_SET(t.id, a.create_by)
            LEFT JOIN sys_dept d ON t.dept_id = d.id
        WHERE
            a.del_flag = ?
            AND (SELECT COUNT(*) FROM lts_file_info WHERE LINK_CODE = a.id) = 0
    ) caseAss
    ORDER BY caseAss.caseCode ASC
) tmp_count;

通过进行此更改,应该可以解决该错误。

MySQL 语法错误: '== 0' 在子查询中的使用

原文地址: https://www.cveoy.top/t/topic/qFGI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录