doutan8601 2014-01-08 19:33
浏览 55
已采纳

MySQL声明PHPMyADMIN

Im want to run queries with declaraions in PHPMYADMIN.

Here my querycode

declare @shopdomain varchar(30);
SET @shopdomain = 'newdomain.com';
UPDATE trans SET tval=REPLACE(name,'olddomain.de', @shopdomain ) WHERE name LIKE 'olddomain.de';
UPDATE settings SET tval=REPLACE(name,'olddomain.de', @shopdomain ) WHERE name LIKE 'olddomain.de';
UPDATE...

PHPMYADMIN shows this error

#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 'declare @shopdomain varchar(30)' at line 1 

What im doing wrong?

  • 写回答

1条回答 默认 最新

  • douhuiyan2772 2014-01-08 19:45
    关注
    1. DECLARE available only in a context of a stored routine (procedure, function, trigger, event)

    2. You're mixing local variables (without @ in front of their names) with user(session) variables

    That being said if you want to go with local variables you do something like this

    DELIMITER $$
    CREATE PROCEDURE my_proc()
    BEGIN
      DECLARE shopdomain VARCHAR(30);
      SET shopdomain = 'newdomain.com';
      UPDATE trans SET tval = REPLACE(name,'olddomain.de', shopdomain ) WHERE name LIKE 'olddomain.de';
      UPDATE settings SET tval=REPLACE(name,'olddomain.de', shopdomain ) WHERE name LIKE 'olddomain.de';
      UPDATE ...
    END$$
    DELIMITER ;
    

    And then call your procedure

    CALL my_proc();
    

    If you go with session variables then you can execute it right away without creating a procedure in the following manner

    SET @shopdomain = 'newdomain.com';
    UPDATE trans SET tval = REPLACE(name,'olddomain.de', @shopdomain ) WHERE name LIKE 'olddomain.de';
    UPDATE settings SET tval=REPLACE(name,'olddomain.de', @shopdomain ) WHERE name LIKE 'olddomain.de';
    UPDATE ...
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 Opencv(C++)异常
  • ¥15 VScode上配置C语言环境
  • ¥15 汇编语言没有主程序吗?
  • ¥15 这个函数为什么会爆内存
  • ¥15 无法装系统,grub成了顽固拦路虎
  • ¥15 springboot aop 应用启动异常
  • ¥15 matlab有关债券凸性久期的代码
  • ¥15 lvgl v8.2定时器提前到来
  • ¥15 qtcp 发送数据时偶尔会遇到发送数据失败?用的MSVC编译器(标签-qt|关键词-tcp)
  • ¥15 cam_lidar_calibration报错