用模糊查詢,下述為轉(zhuǎn)載:
余江網(wǎng)站建設公司成都創(chuàng)新互聯(lián),余江網(wǎng)站設計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為余江1000+提供企業(yè)網(wǎng)站建設服務。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設要多少錢,請找那個售后服務好的余江做網(wǎng)站的公司定做!
SQL模糊查詢的語法為
“SELECT column FROM table WHERE column LIKE ';pattern';”。
SQL提供了四種匹配模式:
1. % 表示任意0個或多個字符。如下語句:
SELECT * FROM user WHERE name LIKE ';%三%';
將會把name為“張三”,“三腳貓”,“唐三藏”等等有“三”的全找出來;
2. _ 表示任意單個字符。語句:
SELECT * FROM user WHERE name LIKE ';_三_';
只找出“唐三藏”這樣name為三個字且中間一個字是“三”的;
SELECT * FROM user WHERE name LIKE ';三__';
只找出“三腳貓”這樣name為三個字且第一個字是“三”的;
3. [ ] 表示括號內(nèi)所列字符中的一個(類似與正則表達式)。語句:
SELECT * FROM user WHERE name LIKE ';[張李王]三';
將找出“張三”、“李三”、“王三”(而不是“張李王三”);
如 [ ] 內(nèi)有一系列字符(01234、abcde之類的)則可略寫為“0-4”、“a-e”
SELECT * FROM user WHERE name LIKE ';老[1-9]';
將找出“老1”、“老2”、……、“老9”;
如要找“-”字符請將其放在首位:';張三[-1-9]';
4. [^ ] 表示不在括號所列之內(nèi)的單個字符。語句:
SELECT * FROM user WHERE name LIKE ';[^張李王]三';
將找出不姓“張”、“李”、“王”的“趙三”、“孫三”等;
SELECT * FROM user WHERE name LIKE ';老[^1-4]';
將排除“老1”到“老4”尋找“老5”、“老6”、……、“老9”。
!最后是重點!
由于通配符的緣故,導致我們查詢特殊字符“%”、“_”、“[”、“';”的語句無法正常實現(xiàn),而把特殊字符用“[ ]”括起便可正常查詢。據(jù)此我們寫出以下函數(shù):
function sqlencode(str)
str=replace(str,"';","';';")
str=replace(str,"[","[[]") ';此句一定要在最先
str=replace(str,"_","[_]")
str=replace(str,"%","[%]")
sqlencode=str
end function
select?姓名?from?表名?where?字段2?in?('三好學生','進步學生')?group?by?姓名?having?count(distinct?字段2)=2
字段2就是三好學生什么的那個字段,名稱自己換一下
創(chuàng)建數(shù)據(jù)庫指定數(shù)據(jù)。mysqlL是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQLAB公司開發(fā),屬于Oracle旗下產(chǎn)品,其中字段顯示二個字符可以創(chuàng)建數(shù)據(jù)庫指定數(shù)據(jù)。
$second第二個條件,依次類推
AND 且 表示必須同時滿足
$sql = "SELECT id FROM `fn_form_1_fangwei`WHERE fwm = '".$fwm."'"." AND second='".$second."'";
OR 或 表示滿足其中之一就可以
$sql = "SELECT id FROM `fn_form_1_fangwei`WHERE fwm = '".$fwm."'"." OR second='".$second."'";