0
我有在MySQL下表(MySQL服务器5.7):为什么比较varchar和数值总是返回True?
CREATE TABLE IF NOT EXISTS SIMCards (
SIMCardID INTEGER UNSIGNED PRIMARY KEY AUTO_INCREMENT,
ICCID VARCHAR(50) UNIQUE NOT NULL,
MSISDN BIGINT UNSIGNED UNIQUE);
INSERT INTO SIMCards (ICCID, MSISDN) VALUES
(89441000154687982548, 905511528749),
(89441000154687982549, 905511528744),
(89441000154687982547, 905511528745);
我然后运行下面的查询:
SELECT SIMCardID FROM SIMCards WHERE ICCID = 89441000154687982549;
然而,而不是只返回相关行,则返回他们全部。如果我包围引号中的ICCID,它工作正常,例如:
SELECT SIMCardID FROM SIMCards WHERE ICCID = '89441000154687982549';
为什么第一个SELECT查询没有如我所料工作?
字符串比较与数字比较不同。如果您希望以某种方式进行比较,则需要专门键入将值转换为varchar或int或其他值。 –