0

当我在 mysql 工作台中运行以下代码时,我得到上述错误请帮忙

#   IF p_Name is not null THEN
 #                   SET m_sql = m_sql +' Name=''' + p_Name + ''' and ';
#   END IF;


     If p_ReligionID is not null THEN
                    SET m_sql = m_sql + '" ReligionId= "' + 'CAST(p_ReligionID AS CHAR(30))' + 'and';
    END IF;

     If p_CasteID is not null THEN
                    SET m_sql = m_sql + '" CasteId= "' + 'CAST(p_CasteID AS CHAR(30))'  + 'and';

    END IF;

    If p_CountryID is not null THEN
                    SET m_sql=m_sql+    '"  Countryid= "' + 'CAST(p_CountryID AS CHAR(30))' + 'and';
    END IF;

    If p_MotherTongueID is not null THEN
                    SET m_sql=m_sql+'"  MotherTongueID= "' + 'CAST(p_MotherTongueID AS CHAR(30))' + 'and';
    END IF;
4

1 回答 1

0

假设 m_sql 在输入时有效并且至少有一个条件通过,则最终语句以“and”结尾。在我知道的任何方言中,这都不是有效的 SQL。然后你必须处理看似无关的引用。

我建议在后续条件的开头插入 AND

 If p_ReligionID is not null THEN
                SET m_sql = m_sql + ' and ReligionId = ' + 'CAST(p_ReligionID AS CHAR(30))';
END IF;

(我是 SQL Server 的人,所以 MySql 的过程语言的细节超出了我的理解)

于 2013-03-22T19:44:59.490 回答