mysql - 将 SQL 查询转换为 MySQL

标签 mysql t-sql phpmyadmin

我需要将此 tSQL 查询转换为 MySQL 查询版本 5.7.14 我尝试使用以下语法声明参数

declare @commissionType INT;

但我陷入了死胡同,需要帮助来转换此查询

CREATE PROCEDURE MyProc
@chainId int
as 
BEGIN
    declare @commissionMethod int
    declare @commissionType int
    declare @value decimal(18,2)

    set @commissionMethod = 1
    set @value = 200000
    set @commissionType = (select  CommissionType from CommissionRules 
    where ChainId = @chainId )

        IF(@commissionMethod = 1)
        BEGIN
            print('alert')
            select (Fixed * @value) / 100 from CommissionRules where ChainId = @chainId  
        END
END

最佳答案

这几乎是字面转换。但检查一下你的逻辑。这没有任何意义。 v_commissionMethod 始终为 1,并且在选择值后甚至不会使用 v_commissionType

 DELIMITER //

    CREATE PROCEDURE MyProc (
    p_chainId int)
    BEGIN
        declare v_commissionMethod int;
        declare v_commissionType int;
        declare v_value decimal(18,2);

        set v_commissionMethod = 1;
        set v_value = 200000;
        select  CommissionType into v_commissionType from CommissionRules 
        where ChainId = p_chainId ;

            IF(v_commissionMethod = 1)
            THEN
                /* print('alert') */
                select (Fixed * v_value) / 100 from CommissionRules where ChainId = p_chainId;  
            END IF;
    END;
    //

    DELIMITER ;

关于mysql - 将 SQL 查询转换为 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45746792/

相关文章:

从 DB2 迁移时 MySQL 触发器创建错误

json - 如何创建一个 SQL 查询来生成两个不同对象的 JSON 数组?

sql - 查找/创建一系列跟踪记录的正确结束日期

sql-server - TSQL 统计连续记录数

MySQL 导出/导入空/空多行字符串

javascript - jQuery 自动完成返回一些空值

php - mysql_unbuffred_query 不工作

mysql - 如何获取MAX函数对应的列值?

PhpMyAdmin 导入错误-MySQL 服务器已经消失/无法识别的关键字

mysql - phpmyadmin - 无法连接 : invalid settings