1. 程式人生 > >總結Mysql 模糊查詢的幾種方式

總結Mysql 模糊查詢的幾種方式

兩個 detail inf 正則 查詢 配對 info 小寫 使用

總結下開發過程中用過模糊查詢功能所用的一些東西,還有就是在建表時一定要考慮完善在建表,否則後期數據量大了在改表會非常的麻煩,請不要為了能夠盡快用表而匆匆創建。在這也是給自己一個警醒,以後不再犯。 #select 字段 from 表 where 查詢字段 like ‘%查詢內容%‘; select detailcontent from detail_htmlinfo where detail_htmlinfo like ‘%劉%‘; SQL模糊查詢,使用like模糊查詢時,加上SQL裏的通配符,可以參考下面: 1. % :表示任意0個或多個字符。可匹配任意類型和長度的字符,有些情況下若是中文,請使用兩個百分號(%%)表示。 2. _ : 表示任意單個字符。匹配單個任意字符,它常用來限制表達式的字符長度語句。 3. [ ] :表示括號內所列字符中的一個(類似正則表達式)。指定一個字符、字符串或範圍,要求所匹配對象為它們中的任一個。 4. [^ ] :表示不在括號所列之內的單個字符。其取值和 [] 相同,但它要求所匹配對象為指定字符以外的任一個字符。 5. 查詢內容包含通配符時,由於通配符的緣故,導致我們查詢特殊字符“%”、“_”、“[”的語句無法正常實現,而把特殊字符用“[ ]”括起便可正常查詢。

全文索引查詢

    #SELECT 字段 FROM 表   WHERE MATCH (查詢字段) AGAINST (‘查詢內容‘); 
    SELECT detailcontent FROM detail_htmlinfo   WHERE MATCH (detailcontent) AGAINST (‘劉‘ IN BOOLEAN MODE); 
            註意 MATCH (detailcontent) 裏面的字段必須是前面建立全文索引的。
            查詢內容不區分大小寫
            AGAINST (‘+a -b‘ IN BOOLEAN MODE);
            + 表示AND,即必須包含。- 表示NOT,即不包含。
             AGAINST (‘a b‘ IN BOOLEAN MODE);
            a和b之間是空格,空格表示OR,即至少包含a、b中的一個。

    #SELECT 字段 FROM 表 WHERE CONTAINS(查詢字段,‘查詢內容‘)
        SELECT detailcontent FROM detail_htmlinfo WHERE CONTAINS(detailcontent,‘*劉*‘)
        CONTAINS(detailcontent)裏面的第一個是查詢字段,並且要建立全文索引。

總結Mysql 模糊查詢的幾種方式