mysql like 查不到結果 中文 查詢優化

2022-03-26 13:12:51 字數 1168 閱讀 8404

【參考】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資料庫...