問題如下
- where ‘1-1’ in (1) ====> true
- where ‘1-1’ in (‘1’) ====> false
- where ‘2-1’ in (1) ====> false
大牛解答
-
IN後邊的內容,如果是數字,那麼會將IN前的字符內容(帶引號的),轉換成數字。
-
在字符轉換成數字的時候,從最左邊,逐一轉換,遇到非數字,就直接返回。
本人實驗
- select 4 = ‘4’ ====> 1
- select ‘4’ = ‘4’ ====> 1
- select ‘5@2@0’ - 1 ====> 4
- select ‘cccc@’ + 1 ====> 1
- select ‘cccc@’ - 1 ====> -1
本人結論
- 如果帶有特殊符號字符串作爲算術運算則直接從左遇到非數字返回後在進行運算操作
- ps: 如果特殊符號的字符串中沒有數字默認返回爲0