Skip to content

4.1 -- net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "." "." #1355

@ahgaoyong

Description

@ahgaoyong

jsqlparser 4.1 and 4.2

public static void main(String[] args) {
        String sql = "select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, " +
                "m.query, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, " +
                "m.order_num, m.create_time " +
                "from sys_menu m " +
                "where m.menu_type in ('M', 'C') and m.status = 0 " +
                "order by m.parent_id, m.order_num ";
        try {
            Statement statement = CCJSqlParserUtil.parse(sql);
            System.out.println(statement.toString());
        } catch (JSQLParserException e) {
            throw new RuntimeException(e.getCause() + "Failed to process, Error SQL:" + sql);
        }
    }

run result:

Exception in thread "main" java.lang.RuntimeException: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "." "."
    at line 1, column 76.

Was expecting one of:

    "&"
    ","
    "::"
    ";"
    "<<"
    ">>"
    "ACTION"
    "ALGORITHM"
    "ANY"
    "ARRAY"
    "AS"
    "AT"
    "BYTE"
    "CASCADE"
    "CASE"
    "CAST"
    "CHANGE"
    "CHAR"
    "CHARACTER"
    "COLLATE"
    "COLUMN"
    "COLUMNS"
    "COMMENT"
    "COMMIT"
    "CONNECT"
    "COSTS"
    "CYCLE"
    "DESC"
    "DESCRIBE"
    "DISABLE"
    "DIV"
    "DO"
    "DUPLICATE"
    "ENABLE"
    "END"
    "EXCLUDE"
    "EXTRACT"
    "FALSE"
    "FIRST"
    "FN"
    "FOLLOWING"
    "FOR"
    "FORMAT"
    "FROM"
    "GROUP"
    "HAVING"
    "INDEX"
    "INSERT"
    "INTERVAL"
    "INTO"
    "ISNULL"
    "JSON"
    "KEY"
    "LAST"
    "LEADING"
    "LOCAL"
    "MATERIALIZED"
    "NO"
    "NOLOCK"
    "NULLS"
    "OF"
    "OPEN"
    "ORDER"
    "OVER"
    "PARALLEL"
    "PARTITION"
    "PATH"
    "PERCENT"
    "PRECISION"
    "PRIMARY"
    "PRIOR"
    "RANGE"
    "READ"
    "REPLACE"
    "ROW"
    "ROWS"
    "SCHEMA"
    "SEPARATOR"
    "SEQUENCE"
    "SESSION"
    "SIBLINGS"
    "SIGNED"
    "SIZE"
    "SKIP"
    "START"
    "SYNONYM"
    "TABLE"
    "TEMP"
    "TEMPORARY"
    "TIMEOUT"
    "TO"
    "TOP"
    "TRUE"
    "TRUNCATE"
    "TYPE"
    "UNSIGNED"
    "VALIDATE"
    "VALUE"
    "VALUES"
    "VIEW"
    "WHERE"
    "WINDOW"
    "XML"
    "ZONE"
    "["
    "^"
    "|"
    <EOF>
    <K_DATETIMELITERAL>
    <K_DATE_LITERAL>
    <K_NEXTVAL>
    <S_CHAR_LITERAL>
    <S_IDENTIFIER>
    <S_QUOTED_IDENTIFIER>
Failed to process, Error SQL:select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.query, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time from sys_menu m where m.menu_type in ('M', 'C') and m.status = 0 order by m.parent_id, m.order_num 
	at com.ruoyi.common.Test.main(Test.java:20)

If I change the code "m.query" to "`m.query`" , it work well, but that "query" is not the mysql key word, so what? how to do

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions