首先,我正在使用(mysql 5.7,jdk1,8,spring boot)
@Transactional
@Modifying
@Query(value= "set @COUNT = 0; \n"
"UPDATE faq f SET f.id= @COUNT\\:=@COUNT 1 WHERE f.id LIKE '%';", nativeQuery = true)
void update();
控制臺訊息(休眠錯誤訊息)是
Hibernate: set @COUNT = 0;
UPDATE faq f SET f.id= @COUNT:=@COUNT 1 WHERE f.id LIKE '%';
(error maessage)
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 'UPDATE faq f SET f.id= @COUNT:=@COUNT 1 WHERE f.id LIKE '%'' at line 2
但是這個查詢在 mysql 控制臺中運行良好
set @COUNT = 0; UPDATE faq SET id = @COUNT:=@COUNT 1 WHERE f.id like '%';
請幫幫我...我一直在尋找并嘗試許多解決方案,但沒有任何效果
... UPDATE faq f SET f.id= @COUNT\\:=@COUNT 1 WHERE f.id LIKE '%';" ...)
... UPDATE faq f SET f.id= @COUNT|=@COUNT 1 WHERE f.id LIKE '%';" ...)
... UPDATE faq f SET f.id= @COUNT\\:=@COUNT 1 ;" ...)
... UPDATE faq f SET f.id= @COUNT\\:=(@COUNT 1) ;" ...)
... (UPDATE faq f SET f.id= @COUNT\\:=@COUNT 1 ;)" ...)
uj5u.com熱心網友回復:
您正在嘗試一次執行 2 個查詢。那行不通。您可以通過在更新查詢中初始化 @count 來組合這些查詢,如下所示:
UPDATE faq f
JOIN (SELECT @count := 0) cnt
SET f.id = @COUNT := @COUNT 1
WHERE f.id LIKE '%'
SQLFiddle 演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/311287.html
