select '|' regexp '\\|'
成都創(chuàng)新互聯(lián)公司專注于企業(yè)成都全網(wǎng)營(yíng)銷推廣、網(wǎng)站重做改版、渦陽(yáng)網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、商城系統(tǒng)網(wǎng)站開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為渦陽(yáng)等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
select '|' rlike '\\|' 也是一樣的 O(∩_∩)O~
終于解決了~呵呵呵(我是aries_sun即c-aries)
想了三天,每天都搞到我早上兩三點(diǎn)才睡,廢寢忘食沒(méi)洗澡^-^
public
String
doHtml(String
str)
{
if(str==null)
return
donull(str);
else{
int
len=str.length();
StringBuffer
sb=new
StringBuffer();
char
ch;
for(int
i=0;i
{
ch=str.charAt(i);
switch(ch)
{
case
'':
sb.append("");break;
case
'':
sb.append("");break;
case
'':
sb.append("");break;
case
'\n':
sb.append("
");break;
case
'\t':
sb.append("????????");break;
case
'
':
sb.append("?");break;
default:
sb.append(ch);
}
}
return
sb.toString();
}
}
//剛處理完中文后,存儲(chǔ)入數(shù)據(jù)庫(kù)的必要操作
public
String
doSql(String
str){
if(str==null)
return
donull(str);
else{
int
len=str.length();
StringBuffer
sb=new
StringBuffer();
char
ch;
for(int
i=0;i
ch=str.charAt(i);
switch(ch){
case
'\'':
sb.append("''");break;
case
'\\':
sb.append("\\\\");break;
default:sb.append(ch);
}
}
return
sb.toString();
}
}
0X01對(duì)我有用[0]丟個(gè)板磚[0]引用舉報(bào)管理TOPtrainee(春泥)等級(jí):2019-05-05
在MySQL中 select 表示查詢,select可以單獨(dú)成句,是MySQL的方言 比如查詢系統(tǒng)時(shí)間: select now(); now() 表示當(dāng)前系統(tǒng)時(shí)間 MySQL特有的一個(gè)方法 在Oracle中系統(tǒng)時(shí)間: select sysdate from dual; 是Oracle的方言 dual表時(shí)Oracle特有的一張表,主要目的就是為了補(bǔ)充SQL語(yǔ)句中的from** 在Oracle的語(yǔ)法中,select之后必須要有from MySQL中有DUAL關(guān)鍵字,所以SELECT NOW()也可以寫作SELECT NOW() FROM DUAL; 但MySQL中的DUAL不是表 執(zhí)行SELECT * FROM DUAL;會(huì)報(bào)錯(cuò),而Oracle中DUAL是一張實(shí)際存在的表,執(zhí)行SELECT * FROM DUAL;會(huì)查詢一個(gè)叫做DUMMY的結(jié)果 標(biāo)準(zhǔn)語(yǔ)法:select...from... 語(yǔ)法格式: 開(kāi)發(fā)中建議以查詢特定列的方式進(jìn)行查詢,前者的執(zhí)行效率更快 示例1:查詢員工編號(hào),員工姓名,年薪 (sal表示的是月薪) 注意年薪的表頭顯示的是“sal*12” 可以使用as或者空格,為查詢結(jié)果的列起別名 或 當(dāng)數(shù)據(jù)運(yùn)算中出現(xiàn)null值時(shí),結(jié)果一定是null MySQL解決問(wèn)題是用ifnull()函數(shù) Oracle解決問(wèn)題是用nvl()函數(shù) ifnull(expr1,expr2) nvl(expr1,expr2) 當(dāng)expr1的結(jié)果是null時(shí),使用expr2的結(jié)果 當(dāng)expr1的結(jié)果不是null時(shí),使用expr1的結(jié)果 示例2: 查詢員工姓名和員工的月收入(月薪+獎(jiǎng)金) 此時(shí)原始數(shù)據(jù)中如果comm中有null值,查詢結(jié)果不正確 使用distinct去掉查詢結(jié)果中的重復(fù)記錄 基礎(chǔ)語(yǔ)法 查詢列1,列2直至列n的數(shù)據(jù),并去掉其中重復(fù)的組合 select ... from...where 查詢條件 示例3:查詢所有在部門編號(hào)是1工作的員工記錄 的查詢結(jié)果是一樣的,數(shù)據(jù)中Tom,tom,TOM,tOm...等都會(huì)被查詢出 如果需要嚴(yán)格控制大小寫字母敏感,查詢語(yǔ)句需要在列前加 binary 這樣只能查詢出TOM X AND Y 必須同時(shí)滿足條件X和條件Y 示例4: 查詢?cè)?號(hào)部門工作,且月薪不低于2500的員工信息 示例5: 查詢?cè)?號(hào)部門工作,且月薪不低于2500的保潔信息 X OR Y 滿足條件X或條件Y其一即可 示例6:查詢?cè)?號(hào)部門或2號(hào)部門工作的員工信息 NOT(X) 不是條件X 主要使用在特殊的比較運(yùn)算符中 AND語(yǔ)句的優(yōu)先級(jí)高于OR 如果使用括號(hào)控制優(yōu)先級(jí) SQL注入問(wèn)題:利用了AND和OR優(yōu)先級(jí)破壞系統(tǒng)中的SQL語(yǔ)句邏輯 正常訪問(wèn)邏輯,用戶輸入admin和123 正確賬號(hào)和密碼可以登錄 SQL注入通過(guò)輸入正確的賬號(hào),和一個(gè)帶有or邏輯的SQL片段將原來(lái)邏輯破壞掉,進(jìn)行非法登錄 輸入的是 賬號(hào):admin 密碼:' OR 1=1 AND lname='admin 這個(gè)SQL語(yǔ)句就變成了 lname = 'admin' AND lpass = '' -- X 假 查不出結(jié)果 1=1 AND lname='admin' -- Y 真 查出admin的數(shù)據(jù) X OR Y -- 真 驗(yàn)證通過(guò) 訪問(wèn)了admin的賬號(hào) X between A and B 表示X在[A,B]之間 相當(dāng)于 X = A and X = B 一般情況下: B應(yīng)該大于等于A 如果B小于A語(yǔ)法也沒(méi)錯(cuò)誤,邏輯上沖突,不會(huì)由查詢結(jié)果 示例1:查詢?cè)滦皆赱2000,2500]區(qū)間的員工信息 示例2:查詢?cè)?0號(hào)部門入職日期在1994年的員工信息 用于查詢數(shù)據(jù)時(shí)進(jìn)行模糊匹配(模糊查詢),只適用于文本查詢 語(yǔ)法規(guī)則 -ename中含有字符% 使用\做為轉(zhuǎn)義字符 將'%'看做一個(gè)%字符 MySQL中 Oracle中 相當(dāng)于or 語(yǔ)法規(guī)則 相當(dāng)于 示例3:查詢?cè)?0號(hào)部門或20部門工作,且職位是CLERK的員工信息 示例4:查詢員工SMITH和AMY的員工信息 示例5:查詢?cè)?1992-01-15'或'1994-12-22'或'1994-07-05'入職的員工信息 如果in中的數(shù)據(jù)有null值,null值不會(huì)被查詢出 專門針對(duì)null值進(jìn)行篩選 示例6: 查詢所有獎(jiǎng)金是null的員工信息 不能使用comm = null查詢,這樣查詢沒(méi)有結(jié)果 not表示特殊比較運(yùn)算符邏輯取反 示例7:查詢?cè)滦?不 在[2000,2500]區(qū)間的員工信息 示例8:查詢員工名字中 不 包含字母A的員工信息 示例9:查詢 不 在10號(hào)或20號(hào)部門工作的,職位是CLERK的員工信息 示例10:查詢獎(jiǎng)金 不 是null的員工信息 排序是對(duì) 查詢結(jié)果 進(jìn)行排序顯示 排序規(guī)則 select...from...where... order by... 示例11:查詢所有的員工信息,按照月薪升序排序。 asc表示升序,排序默認(rèn)就是升序,asc可以省略。 示例12:查詢所有的員工信息,按照月薪降序排序。 desc表示降序 在列1的排序基礎(chǔ)上,進(jìn)行列2排序,.... 在之前所有排序基礎(chǔ)上進(jìn)行列n的排序 示例13 : 查詢所有員工信息,按照部門編號(hào)升序排序,按照月薪降序排序 先按照deptno進(jìn)行升序排序,在deptno排序的基礎(chǔ)上,再進(jìn)行sal的降序排序 示例14:查詢20號(hào)部門員工姓名,月薪,獎(jiǎng)金,月收入,按照月收入的降序排序 可以使用列別名 按照查詢結(jié)果的第3列進(jìn)行升序排序,在排序基礎(chǔ)上以第2列進(jìn)行降序排序 實(shí)際:deptno升序后,sal降序 編寫順序: select...from...where...order by... 執(zhí)行順序: from...where...select...order by...