首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL存储过程需要比较具有不同排序规则序列的2列

MySQL存储过程需要比较具有不同排序规则序列的2列
EN

Stack Overflow用户
提问于 2016-05-19 19:18:53
回答 1查看 157关注 0票数 0

我有一个像这样的MySql存储过程

代码语言:javascript
复制
CREATE DEFINER=`uwcrossword`@`%` PROCEDURE `sp_UpdCodePage`(IN in_id int, 
IN nm varchar(25), IN nis varchar(25), IN lang varchar(25), 
IN stpt varchar(5), IN endpt varchar(5))
BEGIN
UPDATE `uwcrossword`.`CODEPAGE`
SET
`ID` = in_id,
`Name` = nm,
`NameInScript` = nis,
`Language` = lang,
`StartPoint` = stpt,
`EndPoint` = endpt
WHERE [`ID` = in_id COLLATE utf8-general-ci] 
AND [Language = lang COLLATE utf8-unicode-ci];
END

ID列没有特定的排序规则。Language列具有排序规则utf8-unicode-ci

我犯了错误

MySQL说:

1064 -您的SQL语法有错误;请检查与您的MySQL服务器版本相对应的手册,以便在第11行的“ID= in_id排序规则utf8 8-general-ci”和[Language = lang COLLATE 8-unicode“附近使用正确的语法。

当我试图在没有任何校对信息的情况下运行相同的

代码语言:javascript
复制
CREATE DEFINER=`uwcrossword`@`%` PROCEDURE `sp_UpdCodePage`(IN in_id int, 
IN nm varchar(25), IN nis varchar(25), IN lang varchar(25), 
IN stpt varchar(5), IN endpt varchar(5))
BEGIN
UPDATE `uwcrossword`.`CODEPAGE`
SET
`ID` = in_id,
`Name` = nm,
`NameInScript` = nis,
`Language` = lang,
`StartPoint` = stpt,
`EndPoint` = endpt
WHERE [`ID` = in_id] 
AND [Language = lang];
END

MySQL说:

1064 -您的SQL语法有一个错误;请检查与您的MySQL服务器版本对应的手册,以便在第13行的“ID= in_id和Language =lang”附近使用正确的语法。

EN

回答 1

Stack Overflow用户

发布于 2016-05-19 19:40:40

正如在simple_expr下所描述的,表达式语法语法产品可以生成(expr [, expr] ...)。请注意,括号是圆的,而不是方形的。

但是,在这种情况下,不需要括号:

代码语言:javascript
复制
CREATE DEFINER=`uwcrossword`@`%` PROCEDURE sp_UpdCodePage(
  IN in_id INT,
  IN nm    VARCHAR(25),
  IN nis   VARCHAR(25),
  IN lang  VARCHAR(25), 
  IN stpt  VARCHAR(5),
  IN endpt VARCHAR(5)
)

  UPDATE uwcrossword.CODEPAGE
  SET    ID           = in_id,
         Name         = nm,
         NameInScript = nis,
         Language     = lang,
         StartPoint   = stpt,
         EndPoint     = endpt
  WHERE  ID           = in_id COLLATE utf8-general-ci
     AND Language     = lang  COLLATE utf8-unicode-ci

;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37332272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档