2014-11-21 116 views
0

我試圖根據一列中表示爲varchar的二進制代碼來選擇值,例如「values.todo 「= 101,所以我會做下面的SQL查詢:MySQL子字符串在WHERE子句中使用時返回false,結果爲'0'

SELECT * FROM values WHERE SUBSTRING(todo,2,1); 

我明白串比較的東西明確會更精確,實際上是查詢是如何完成的,但我的問題是,爲什麼給定的查詢認爲位置2,1處的返回值'0'爲假,因此返回0結果?

+0

您可以使用位運算符來代替,例如,如果待辦事項=「101」'TODO: 2'將返回0,而'todo&4'將返回4,'todo&1'將返回1。 – piotrm 2014-11-21 12:38:06

回答

0

根據documentation of MySQL,這應該工作:

比較操作導致1(TRUE)的值,0(FALSE),或NULL。這些操作適用於數字和字符串。必要時,字符串會自動轉換爲數字和數字。

如果你向下滾動進一步你會看到其中0被視爲虛假select語句的例子,...

相關問題