我正在尝试使用来自Web服务的数据使用存储过程进行简单更新,但由于单个引号未在存储过程中被识别,因此未能在“字段列表”中显示未知列'USERNAME'。
BEGIN
UPDATE PYBUsers set IsMember = 1 where user = p_user;
END
正如您所看到的那样,提供了p_user但Web服务并没有单引号,因此被拒绝。我也试过
SET @query = CONCAT('UPDATE PYBUsers set IsMember = 1 where user = \'', p_user, '''');
和
SET @query = CONCAT('UPDATE PYBUsers set IsMember = 1 where user = ', "'",p_user,"'");
PREPARE stmt FROM @query;
EXECUTE stmt;
DEALLOCATE PREPARE stmt
但没有运气。我有一个简单的解决方案吗?
答案 0 :(得分:0)
尝试
SET @query = CONCAT('UPDATE PYBUsers set IsMember = 1 where user = ''',p_user,'''');
PREPARE stmt FROM @query;
EXECUTE stmt;
DEALLOCATE PREPARE stmt
要在字符串中添加单引号,您必须将两个单引号放在一起,即 “这是丹的字符串;在n和s之间插入单引号
'' '';这个看起来有点尴尬,但是这里有。第一个引号打开字符串,接下来的两个引号在字符串中生成单引号。最后的报价关闭字符串。
INSERT INTO myTable values ('''')
以上将导致一个引用存储在表
中