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或其他值。 –