0
當條件語句中使用mysql時,如何將字符串轉換爲布爾值?條件語句中的字符串解釋
select if("192.168.0.0",true,false) // returns 1
select if("-1",true,false) // returns 1
select if("a1",true,false) // returns 0
當條件語句中使用mysql時,如何將字符串轉換爲布爾值?條件語句中的字符串解釋
select if("192.168.0.0",true,false) // returns 1
select if("-1",true,false) // returns 1
select if("a1",true,false) // returns 0
MySQL使用C語言風格的布爾值:0
是假的,其他任何數量是真實的。所以,真正的問題是:
MySQL如何將一個字符串轉換爲數字?
答案就是它以明顯的方式轉換字符串,它從左到右並在不再有有效數字時停止解析。例如:
mysql> select '192.168.0.0' + 0, '-1' + 0, 'pancakes11' + 0;
+-------------------+----------+------------------+
| '192.168.0.0' + 0 | '-1' + 0 | 'pancakes11' + 0 |
+-------------------+----------+------------------+
| 192.168 | -1 | 0 |
+-------------------+----------+------------------+
所以'a1'
是在數值或布爾上下文零,因爲'a'
是不能是(十進制)數的一部分。
本手冊的Type Conversion in Expression Evaluation和convert
部分可能有用。 PS:不要養成使用雙引號的習慣,MySQL可以避免使用它,但許多數據庫不會。單引號用於在SQL中引用字符串文字。