2008年9月11日

關於SqlParameter的一些想法

坎尼在 這篇 裡有提到
把 like 後面的 % 符號寫在 Parameter 的 Value 裡
不過 SqlParameter 應該要擋掉關鍵字不是嗎?

坎尼經過剛剛沉思了數小時 (扣掉看電視和聊 msn 還有看 blog 的時間
得出一個結論 (當然是我的猜想

% 會被 SqlParameter 當成一般的文字在處理

為什麼呢? 請聽坎尼娓娓道來

一般大家在下 like 的 T-Sql 會怎麼寫呢?

select * from table1 where column1 like 'abc%'

這串會把 所有 column1 裡 abc 開頭的資料都抓取出來
但是如果改成下面這個樣子呢???
select * from table1 where column1 = 'abc%'

我們可以得到 column1 值是 abc% 的資料
當然 若沒有符合 abc% 這個條件的 就查不到任何資料 (多一個 a 少一個 % 都不行)

由以上坎尼推論式得知 % 只在 like 出現時是關鍵字
因為它自己出來是沒作用的 Sql 只認它和它的搭檔 like

就像平常 馬利歐(like) 出現 旁邊一定會有 香菇(%) 和 火焰花 (_) 一樣
若是香菇自己出現 沒有人會認為把它拿來吃會長得跟大樹一樣高

這個例子舉的很爛 不過大致上就是這種感覺
一個很普通的人若是旁邊出現了明星朋友 (比如說 王X宏)
就算是再普通 大家也會知道他是 王力X 的朋友
但是過了幾天 他旁邊沒了 X力宏 還有人會認得他嗎?

再度舉了個很爛的例子 大概是坎尼想睡一直胡言亂語

因為前幾天 Tim 一直在炫耀說他本月文章贏一篇
所以只好上來發了篇沒什麼感想的心得文

沒有留言:

Google Spreadsheet 裡用規則運算式

最近因為工作關係,遇到要用 Google Form 及 Google Sheet 所以研究了 Google Sheet 裡的一些 function 怎麼用 首先,分享一下如何在 Google Sheet 裡用規則運算 :D