【问题标题】:How can I translate this to mysql?我怎样才能把它翻译成mysql?
【发布时间】:2018-03-26 19:43:06
【问题描述】:

我最近从 sql server 迁移到 mysql,但在将我的 sql 存储过程转换为 mysql 存储过程时遇到了麻烦。 这是我的 SQL SERVER 存储过程:

CREATE PROCEDURE dbo.GetGrades  
    @GradeId int = 0
    ,@Name nvarchar(100) = ''
AS
BEGIN   
    SET NOCOUNT ON;


    SELECT ISNULL(I.GradeId,0) as GradeId
      ,ISNULL(I.Name, '') as Name
      ,ISNULL(I.Details, '') as Details
      ,ISNULL(I.StatId, 0) as StatId
      ,ISNULL(I.CreatedById, 0) as CreatedById
      ,ISNULL(U.UserName, '') as CreatedByName
      ,ISNULL(I.CreatedOn, null) as CreatedOn

    FROM Grades I

        LEFT JOIN Users U ON U.UserId = I.CreatedById

    WHERE (I.GradeId = @GradeId OR @GradeId = 0)
      AND (I.Name LIKE '%' + @Name +'%' OR @Name = '')   
      AND I.StatId <> 2 

END

GO

这就是我迄今为止在 mysql 存储过程中所做的:

DELIMITER $$

CREATE PROCEDURE GetGrades
(   
     IN intGradeId INT  
    ,IN strName VARCHAR(1000)       
)
BEGIN
SELECT 
      gradeId
    , gradeName
    , details
    , statId
    , createdById
    , createdOn 
FROM grades 
WHERE (gradeId = intGradeId OR intGradeId = 0)
AND (gradeName LIKE '%' + strName +'%' OR strName = '');
END

当我执行此操作时,这是错误消息:

MySQL said: Documentation

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '+ strName +'%' OR strName = '')
AND statId = 1;
END' at line 16

另外,mysql中有ISNULL()函数吗?

【问题讨论】:

    标签: mysql sql sql-server stored-procedures xampp


    【解决方案1】:

    类似这样的:

    DELIMITER $$
    
    CREATE PROCEDURE GetGrades (   
         IN in_intGradeId INT, 
         IN in_strName VARCHAR(1000)       
    )
    BEGIN
        SELECT gradeId, gradeName, details, statId, createdById, createdOn 
        FROM grades 
        WHERE (gradeId = in_intGradeId OR in_intGradeId = 0) AND
              (gradeName LIKE CONCAT('%', in_strName, '%') OR in_strName = '');
    END;
    

    【讨论】:

      猜你喜欢
      • 2014-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-12
      相关资源
      最近更新 更多