Mysql使用常见问题
Mysql使用Order,Desc、Asc关键字作为字段名称
各类数据库都有自己定义的关键字,作为保留字,如果使用这些字段作为表名或者字段名的话,就可能会发生错误
问题
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 ‘order FROM district’ at line 1
Mqsql在查询的时候遇到以下问题:
这里是因为使用“order”作为“排序”字段名称,用来记录排序位置,然而Mysql规定 order
作为关键字,用于排序,不能出现在where
之前,所以会报错。
解决方案
在order
左右使用符号 `(键盘上数字1左侧的按键)进行包裹,就可以正常解析,进行查询。
- 例如
SELECT
`id`, `name`, `parent_id`, `suffix`, `order`, `code`
FROM
`test`.`district`
- 数据库工具生成
SELECT * FROM `district`