注意: 如果在使用like操作符時(shí),后面的沒(méi)有使用通用匹配符效果是和=一致的,
十多年建站經(jīng)驗(yàn), 網(wǎng)站制作、網(wǎng)站建設(shè)客戶的見(jiàn)證與正確選擇。成都創(chuàng)新互聯(lián)公司提供完善的營(yíng)銷型網(wǎng)頁(yè)建站明細(xì)報(bào)價(jià)表。后期開(kāi)發(fā)更加便捷高效,我們致力于追求更美、更快、更規(guī)范。
只能匹配的結(jié)果為1000,而不能匹配像JetPack 1000這樣的結(jié)果.
匹配結(jié)果為: 像 "xLi" 這樣記錄.
匹配結(jié)果為: 像"Lixx"這樣的記錄.(一個(gè)下劃線只能匹配一個(gè)字符,不能多也不能少)
注意事項(xiàng):
正如所見(jiàn), MySQL的通配符很有用。但這種功能是有代價(jià)的:通配符搜索的處理一般要比前面討論的其他搜索所花時(shí)間更長(zhǎng)。使用通配符時(shí)要注意的事情:
不知道你用什么做,我那php做例子吧,我默認(rèn)你是會(huì)一定的動(dòng)態(tài)網(wǎng)頁(yè)基礎(chǔ)的,要是看不懂那我也沒(méi)辦法了。。。
兩個(gè)頁(yè)面 search.php,result.php
第一個(gè)頁(yè)面search.php就放一個(gè)表單,里面放個(gè) input輸入框,一個(gè)按鈕 點(diǎn)擊按鈕后提交表單到result.php,可以用get方式提交,提交過(guò)去就是類似result.php?key=123
然后在第二個(gè)頁(yè)面,獲取到提交的關(guān)鍵字$_GET["key"](123),然后在程序里就用你說(shuō)的那個(gè)select語(yǔ)句查詢就行了,然后把結(jié)果顯示出來(lái)
$sqlstr="select * from table where user like '%".$_GET["key"]."%' ";
可以直接精確查詢:
select * from test where name ='%a' -------------查詢name為 %a的數(shù)據(jù)
模糊查詢 select * from test where name like '%\%a%'; -----------模糊查詢name中包含 %a的數(shù)據(jù)
效率上當(dāng)然是 全文搜索(match..against..)快啊, 但是不支持中文搜索的。
你只能選擇 like搜索 ,上面的 你用錯(cuò)了
應(yīng)該是 like '%上海浦東新區(qū)%' 這樣就可以了,
如果真想實(shí)現(xiàn)中文的全文搜索,
這里有個(gè)不錯(cuò)的文章 推薦給你看啊
select 字段名 from 表名 where title like ‘DOCO%人才管理%員工%’
給LZ一點(diǎn)建議,做這種搜索的時(shí)候最好是吧別人鍵入的字符串之間全加上%
例如,別人輸入的是“招聘信息”,那么后臺(tái)得到后插入到sql語(yǔ)句就是‘%招%聘%信%息%’
這可以通過(guò)后臺(tái)的處理得到,就是對(duì)字符串的操作,這樣的搜索結(jié)果就是最全的了
當(dāng)然,這個(gè)方法的缺點(diǎn)就是順序有前后
MySQL:
在進(jìn)入dao層之前把%替換為\\%,(如果是日文的\\要換成¥¥¥¥),注意,要?jiǎng)?chuàng)建一個(gè)新的變量接收這個(gè)替換后的變量,這個(gè)新的變量就是傳入dao層的變量,別忘了不含百分號(hào)時(shí)的else{}。