1
結束VARCHAR鍵我已經定義了一個表等MySQL不匹配的數
CREATE TABLE `mytable` (
`identifier` varchar(45) NOT NULL,
`f1` char(1) NOT NULL,
KEY `identifier` (`identifier`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
,然後加入主鍵和索引作爲
ALTER TABLE `mytable` ADD PRIMARY KEY (`identifier`)
ALTER TABLE `mytable` ADD INDEX (`identifier`)
在標識符字段我的表是(大約800,000條記錄)
USER01-TESTXXY-CAD-10172
USER01-TESTXXY-CAD-1020
USER01-TESTXXY-CAD-10245
USER02-TEST-003-SUBA
USER02-TEST-002-SUBB
我發現標識符結束的查詢與一些不匹配:
SELECT *
FROM identifier
WHERE identifier = 'USER01-TESTXXY-CAD-10245';
,但其匹配以字母結尾的標識查詢匹配成功
SELECT *
FROM identifier
WHERE identifier = 'USER02-TEST-003-SUBA';
我查詢確切的說,我並不需要想比較,因爲我的用戶提供給我確切的字符串除了varchar(45)還有足夠的空間來存放我的標識符。 我做錯了什麼?可能是什麼原因或解決方案?
與問題無關,但您不需要在標識符上添加索引,因爲主鍵已經是索引。嘗試運行優化表並重新測試。 –
確保標識符後面字符串的末尾沒有隱藏字符。 (其他事物的換行符)。您是否最後手動添加了帶有數字的字符串? (我測試過它,它的工作原理) –
我測試過這個,也適用於我。 –