これは本当に私が興味を持っているのか、これが本当にMySQL開発チームに提出する必要があるバグであるのか不思議です。Mysql Bug?反転0は矛盾しています
これらのクエリは、(彼らは読みにくいことができます)と同等である必要があります。do
true, false, true, false, true, false
最初の2が、最後のリターン:私はこれらを返すことを期待する
SELECT !0, !!0, !!!0, !!!!0, !!!!!0, !!!!!!0;
SELECT NOT 0, NOT NOT 0, NOT NOT NOT 0, NOT NOT NOT NOT 0, NOT NOT NOT NOT NOT 0, NOT NOT NOT NOT NOT NOT 0;
SELECT !(0), !(!(0)), !(!(!(0))), !(!(!(!(0)))), !(!(!(!(!(0))))), !(!(!(!(!(!(0))))));
true, true, false, false, true, true
誰でもこれを説明できますか?
誰か興味がある人は、私の疑問に由来しています。 0がfalseと1真として扱われているので、あなたは、フィールドを使用することができます - このように - それはbool_field呼び出すことができます:
SELECT * FROM something WHERE bool_field
または
よくSELECT * FROM something WHERE !bool_field
、私は必ず何かがあるようにしたい場合ブール(総称していない言語固有の)として扱われ、それが価値だ反転したくない、私はこのように書く:本当に奇妙なパターンに、最終的に上記の質問に
SELECT * FROM something WHERE !!bool_field
このリード。
MySQLのバージョンは、MySQLのバグレポートは、すでに6年前に...このために提出されている5.5.4
最後に「1,0,1,0,1,0」が返されます。どのMySQLバージョンを使用していますか? – Quassnoi
^^私もそうですが、最初は5.6.29で '1,1,0,0,1,1'を返します(sqlfiddle http://sqlfiddle.com/#!2/9eecb7d/1035でも5.5をチェックしています) –
それは私のためにうまくいきます。あなたの結論は確かですか? – Fabricio