我正在查看一些代碼,並且一些錯誤引起了我的注意。有人比較tinyint列和varchar值。Mysql:將tinyint列與varchar值進行比較
但令人驚訝的是,這是工作(因爲意圖是與數值0比較)。
示例查詢:
create table t1(x1 tinyint);
insert into t1 values (0),(0), (1), (2);
select * from t1 where x1 = 'live'
結果:
x1
0
0
我的問題是,爲什麼(任意)VARCHAR值的行爲方式爲數值0的相同int/tinyint列?
如果您需要將varchar列與int/tinyint列進行比較,那麼db設計可能有問題。 – jarlh
請閱讀...一個bug引起了我的注意.. – user2407394
對不起,沒有仔細閱讀,再次... – jarlh