簡體   English   中英

MySQL和動態查詢錯誤1064

[英]MySQL and Dynamic Query Error 1064

有誰知道為什么我不斷在下面出現此錯誤? 我似乎無法動搖。

call test_delete('WOW@GMAIL.COM', '''2c016cd6-87e6-11e1-9fac-001cd4565d26''', 0) Error Code: 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 'UPDATE user u SET u.enable = ? WHERE u.' at line 2

 DELIMITER $$    
    CREATE PROCEDURE `test_delete`(
        IN username NVARCHAR(255),
        IN district_admin_ids LONGTEXT,
        IN active BIT(1)
    )
    BEGIN

    SET @username = username;
    SET @district_admin_ids = district_admin_ids;
    SET @active = CASE WHEN active > 0 THEN 1 ELSE 0 END;

    SET @query = CONCAT('
                        SET SQL_SAFE_UPDATES=0;
                        UPDATE user u
                        SET u.enable = ? 
                        WHERE u.id IN (
                            SELECT da.id
                            FROM test da
                            WHERE u.id = da.id 
                            AND u.username = ?
                            AND da.id IN (?)
                        );');

    PREPARE statement FROM @query;
    EXECUTE statement USING @active, @username, @district_admin_ids;
    DEALLOCATE PREPARE statement;   
    END

已移動SET SQL_SAFE_UPDATES=0; 在動態查詢之外,並且可以正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM