我试图在phpMyAdmin中运行查询,但由于报价问题,它无法运行。我的表中的值是指定英寸,例如4",6"等等。我的查询是根据该大小列中的值设置一个字段,但它没有运行,因为在由于单引号,它认为当前格式的英寸值是列。
如果所有值已经有了#34;我怎么能在phpMyAdmin中运行它?在价值的最后?
UPDATE `stagingSurvey`
SET `totalCost` = 330
WHERE `meterSize` = `3"`
OR `meterSize` = `4"`
OR `meterSize` = `5"`
OR `meterSize` = `6"`
OR `meterSize` = `7"`
OR `meterSize` = `8"`
OR `meterSize` = `9"`
OR `meterSize` = `10"`
OR `meterSize` = `11"`
OR `meterSize` = `12"`;
UPDATE `stagingSurvey`
SET `totalCost` = 175
WHERE `meterSize` = `5/8"`
OR `meterSize` = `3/4"`
OR `meterSize` = `1"`
OR `meterSize` = `1 1/2"`
OR `meterSize` = `2"`;
答案 0 :(得分:1)
您不能使用反引号来转义列值/字符串值。反引号仅对转义标识符(如列和表名)有效。
标识符引号字符是反引号(`)。 https://dev.mysql.com/doc/refman/5.7/en/identifiers.html
在您的情况下,您在字符串值中使用"
,因此您无法直接使用"
来转义字符串值。一个简单的解决方案是使用'
而不是反引号。
您也可以使用"
来转义字符串值,但您必须转义"
值:\"
。
字符串是一个字节或字符序列,包含在单引号(')或双引号(“)字符中。
https://dev.mysql.com/doc/refman/5.7/en/string-literals.html
在您的情况下,您只需使用'
来转义字符串值:
UPDATE `stagingSurvey`
SET `totalCost` = 330
WHERE `meterSize` = '3"'
OR `meterSize` = '4"'
OR `meterSize` = '5"'
OR `meterSize` = '6"'
OR `meterSize` = '7"'
OR `meterSize` = '8"'
OR `meterSize` = '9"'
OR `meterSize` = '10"'
OR `meterSize` = '11"'
OR `meterSize` = '12"';
UPDATE `stagingSurvey`
SET `totalCost` = 175
WHERE `meterSize` = `5/8"`
OR `meterSize` = '3/4"'
OR `meterSize` = '1"'
OR `meterSize` = '1 1/2"'
OR `meterSize` = '2"';