顯示廣告
隱藏 ✕
看板 Irice
作者 irice (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 
guest
x)推文 r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇