首頁  >  文章  >  資料庫  >  mysql怎麼查詢包含的字串

mysql怎麼查詢包含的字串

WBOY
WBOY原創
2022-02-24 11:30:4225784瀏覽

方法:1、利用「表名where 欄位like '%字串%'」查詢;2、利用「表名where find_in_set(字串,欄位)」查詢;3、利用「表名where locate(字串,字段)」查詢。

mysql怎麼查詢包含的字串

本教學操作環境:windows10系統、mysql8.0.22版本、Dell G3電腦。

mysql怎麼查詢包含的字串

總結下在MySQL裡判斷某個字串是否包含某個字串的3種方法。

先舉個簡單的場景,例如要查詢user表中嗜好中有yanggb的記錄。

方法1:使用萬用字元%。

通配符也就是模糊匹配,可以分為前導模糊查詢、後導模糊查詢和全導匹配查詢,適用於查詢某個字串中是否包含另一個模糊查詢的場景。

select * from user where hobby like '%yanggb%';

使用的場景局限於找到hobby中存在yanggb的記錄(hobby為多個以逗號隔開的值),反之不行。

方法2:使用MySQL提供的字串函數find_in_set()。

MySQL有提供一個字串函數find_in_set(str1,str2)函數,用於傳回str2中str1所在的位置索引,如果找到了,則傳回true(1),否則傳回false( 0),其中str2必須以半角符號的逗號【,】分割開。

select * from user where find_in_set('yanggb', hobby);

符合的字串作為第一個參數時,適用的場景是找到hobby中存在yanggb的記錄(hobby為多個以逗號隔開的值)。

select * from user where find_in_set(hobby, 'yanggb1,yanggb2,yanggb3');

符合的字串作為第二參數時,適用的場景是找到hobby中有yanggb1、yanggb2和yanggb3其中一個的記錄(hobby為單一值)。

方法3:使用MySQL提供的字串函數locate()函數。

MySQL也提供字串函數locate(substr,str)函數,用來傳回str中substr所在的位置索引,如果找到了,則回傳一個大於0的數,否則回傳0 。

select * from user where locate('yanggb', hobby) > 0;

適用的場景和find_in_set()函數差不多,兩個函數的差異大概只有回傳值上的不同。

推薦學習:mysql影片教學

#

以上是mysql怎麼查詢包含的字串的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn