【发布时间】:2017-05-05 11:33:01
【问题描述】:
我使用Java和MySQL按名称搜索,之前我连接到Oracle并且一切运行良好,现在我更改为迁移到MYSQL并看到错误..
MySql:
SELECT CAR.ID AS ID,
CAR.NAME AS NAME,
CAT.ID AS CATEGORY_ID,
CAT.NAME AS CATEGORY_NAME,
C.ID AS CITY_ID,
C.NAME AS CITY_NAME,
FROM CARS CAR,
CATEGORY CAT,
CITY C
WHERE LOWER(CAR.NAME) LIKE '%'||LOWER(?)||'%'
AND CAR.CATEGORY_ID = CAT.ID
AND D.CITY_ID = C.ID
ORDER BY CAT.NAME, CAR.NAME
在部署和调试搜索查询时,发生错误:
日志消息:
SqlExceptionHelper - SQL Error: 1114, SQLState: HY000
SqlExceptionHelper - The table 'C:\Windows\TEMP\#sql730_a_47' is full
HibernateUtils - error at HibernateUtils.getListResult: could not extract ResultSet
SqlExceptionHelper - SQL Warning Code: 1292, SQLState: HY000
SqlExceptionHelper - Truncated incorrect INTEGER value: '%'
SqlExceptionHelper - SQL Warning Code: 1114, SQLState: HY000
SqlExceptionHelper - The table 'C:\Windows\TEMP\#sql730_a_47' is full
MySQL 说:
#1064 - 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 '?)||'%'
AND CAR.CATEGORY_ID = CAT.ID at line 50
我该如何解决这个问题?非常感谢
【问题讨论】:
-
您需要使用 concat 进行连接 plz remove ||
-
你的代码循环怎么样?
-
请注意:我删除了 Oracle 和 PL/SQL 标记。该错误是 MySQL 错误,因此代码显然是 MySQL 代码。
-
@GordonLinoff:是的,我明白了,这是我的语法错误 mysql,我正在测试它..