where '1-1' in (1)

問題如下

  1. where ‘1-1’ in (1) ====> true
  2. where ‘1-1’ in (‘1’) ====> false
  3. where ‘2-1’ in (1) ====> false

大牛解答

  • IN後邊的內容,如果是數字,那麼會將IN前的字符內容(帶引號的),轉換成數字。

  • 在字符轉換成數字的時候,從最左邊,逐一轉換,遇到非數字,就直接返回。

本人實驗

  1. select 4 = ‘4’ ====> 1
  2. select ‘4’ = ‘4’ ====> 1
  3. select ‘5@2@0’ - 1 ====> 4
  4. select ‘cccc@’ + 1 ====> 1
  5. select ‘cccc@’ - 1 ====> -1

本人結論

  • 如果帶有特殊符號字符串作爲算術運算則直接從左遇到非數字返回後在進行運算操作
  • ps: 如果特殊符號的字符串中沒有數字默認返回爲0
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章