看板 Irice
作者 標題 [SQL] 關於資料查詢LIKE指令的字元跳脫功能
時間 2013年01月25日 Fri. PM 12:08:44
在用LIKE查詢時意外查到非所需的資料
GOOGLE後才了解原來底線字元對LIKE有其特殊意義
代表的是任意字元,_ = 1個任意字, ___ = 3個任意字,依此類推…
但若碰到查詢的資料確定要有底線內容時,這功能反而變成困擾
解決方法是自己增加LIKE的跳脫規則
EXAMPLE:
原本的程式和語法
string keyword = '0912_yyyyyy';
SELECT * FROM MEMBERS WHERE EMAIL LIKE '% + keyword + %';
改成下面的方式
string keyword = '0912_yyyyyy'.Replace('_', '\\_');
SELECT * FROM MEMBERS WHERE EMAIL LIKE '%0912_xxxxx%' ESCAPE '\\';
PS:ESCAPE 指令是把其所指定的跳脫符號後一個字當作一般的字元來使用
--
※ 作者: irice 時間: 2013-01-25 12:08:44
※ 編輯: irice 時間: 2013-01-25 13:29:07
※ 看板: Irice 文章推薦值: 0 目前人氣: 0 累積人氣: 628
回列表(←)
分享