【參考】mysql like %keyword%不走索引替代方法
select locate('xbar',`foobar`);
###返回0
select locate('bar',`foobarbar`);
###返回4
select locate('bar',`foobarbar`,5);
###返回7
備註:返回 substr 在 str 中第一次出現的位置,如果 substr 在 str 中不存在,返回值為 0 。如果pos存在,返回 substr 在 str 第pos個位置後第一次出現的位置,如果 substr 在 str 中不存在,返回值為0。
select `column` from `table` where locate('keyword', `field`)>0
備註:keyword是要搜尋的內容,field為被匹配的字段,查詢出所有存在keyword的資料
2.position('substr' in `field`)方法
position可以看做是locate的別名,功能跟locate一樣
select `column` from `table` where position('keyword' in `filed`)
3.instr(`str`,'substr')方法
select `column` from `table` where instr(`field`, 'keyword' )>0
除了上述的方法外,還有乙個函式find_in_set
find_in_set(str1,str2):
返回str2中str1所在的位置索引,其中str2必須以","分割開。
以上方法在使用 * 時不走索引, 使用多個列時走所以.
mysql5.6中已經解決了
like %keyword% 第乙個%分好的問題.但注意explain select city_id ,city from city
where city like '%xin%'; select 的列不能時* 否則不走索引.
hibernate search查不到結果
用了spring hibernate hibernate search,照著文件上的配置,寫 寫測試,可以成功執行,可就是查不到結果 jdbc.driverclassname com.mysql.jdbc.driver jdbc.url jdbc mysql localhost 3306 secur...
查不到opencv版本的問題
檢查opencv版本 前兩天解除安裝了opencv3.0,想重灌2.4版本。安裝是沒有問題,但現在查不到opencv版本,程式也編譯不通過。解除安裝過程 找到當初安裝 opencv3.0.0 的 build 目錄,進入 build 目錄 cd home opencv build sudo make ...
解決pymysql查不到最新資料的辦法
最近用 flask 寫了幾個介面部署在伺服器上,然後用 pytest 來做測試,但遇到了問題,搞了大半天才把問題解決。問題大概是這樣的,我在本地環境用 pytest 寫 來對伺服器上 flask 的介面進行測試,在測試刪除介面的時候,第一步我在 pytest 中會通過sql插入資料到mysql資料庫...