mysql判斷字符串是否存在幾種常見方式
sql判斷某個(gè)字符是否包含在字段中,在mysql通常有以下幾種方式
一、LIKE模糊查詢
LIKE是用于模糊查找的關(guān)鍵字,使用%作為通配符,分左模式、有模式、左右模式
SELECT '貂蟬' LIKE '%貂蟬%';
二、FIND_IN_SET函數(shù)
FIND_IN_SET(str,strlist) : str 要查詢的字符串,strlist 需查詢的字段,參數(shù)以”,”分隔;該函數(shù)的作用是查詢字段(strlist)中是否包含(str)的結(jié)果,返回結(jié)果為null或記錄。
SELECT FIND_IN_SET('貂蟬','西施,昭君,貂蟬,趙飛燕');
三、LOCATE函數(shù)
LOCATE(substr,str,pos)函數(shù)是MySQL中用于查找某個(gè)字符串在另一個(gè)字符串中第一次出現(xiàn)的位置的函數(shù)。它返回目標(biāo)字符串在源字符串中的起始位置,如果目標(biāo)字符串不存在,則返回0。與find_in_set相比,LOCATE不受分隔符約束,它是一種字符串匹配模式,但是無法直接返回記錄,需要手動(dòng)判斷
查詢字符串位置
SELECT LOCATE('西施','西施,昭君,貂蟬,趙飛燕'); SELECT LOCATE('貂蟬','西施、昭君、貂蟬、趙飛燕'); SELECT LOCATE('貂蟬','西施昭君貂蟬趙飛燕');
查詢記錄
SELECT LOCATE('貂蟬','西施、昭君、貂蟬、趙飛燕')>0;
四、INSTR函數(shù)
INSTR(str,substr)I在一個(gè)字符串(str)中搜索指定的字符(substr),返回發(fā)現(xiàn)指定的字符的位置(index)。在字符串str里面,字符串substr出現(xiàn)的第一個(gè)位置(index),index是從1開始計(jì)算,如果沒有找到就直接返回0,沒有返回負(fù)數(shù)的情況。
SELECT INSTR('西施、昭君、貂蟬、趙飛燕、西施、','西施'); SELECT INSTR('西施、昭君、貂蟬、趙飛燕','昭君') > 0;
從使用上看INSTR和LOCATE的作用基本相同,僅僅是用法上有極小的差異,主要在參數(shù)列表上
附:SQL中獲取一個(gè)長字符串中某個(gè)字符串出現(xiàn)次數(shù)的簡單方法
-- ============================================= -- Author: <何劍偉> -- Create date: <2008-03-19> -- Description: <獲取一個(gè)長字符串中某個(gè)字符串出現(xiàn)次數(shù)> -- ============================================= ALTER FUNCTION [ dbo ] . [ fun_RepeatCharNum ] ( @CodeString varchar ( 2000 ), @RepeatString varchar ( 200 ) ) RETURNS int AS BEGIN DECLARE @RepeatStringLen int , -- 檢測重復(fù)字符的長串 @TempString varchar ( 500 ) -- 臨時(shí)字符串(總比@RepeatString多一個(gè)即長度大1) SET @RepeatStringLen = LEN ( @RepeatString ) SET @TempString = Replicate ( ' | ' , @RepeatStringLen ) + ' | ' RETURN LEN ( REPLACE ( @CodeString , @RepeatString , @TempString )) - LEN ( @CodeString ) END
到此這篇關(guān)于mysql判斷字符串是否存在幾種常見方式的文章就介紹到這了,更多相關(guān)sql判斷字符串是否存在內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Windows下MySQL 5.6安裝及配置詳細(xì)圖解(大圖版)
這篇文章主要介紹了Windows下MySQL 5.6安裝及配置詳細(xì)圖解(大圖版),需要的朋友可以參考下2016-04-04淺談innodb的索引頁結(jié)構(gòu),插入緩沖,自適應(yīng)哈希索引
下面小編就為大家?guī)硪黄獪\談innodb的索引頁結(jié)構(gòu),插入緩沖,自適應(yīng)哈希索引。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03Linux下將數(shù)據(jù)庫從MySQL遷移到MariaDB的基礎(chǔ)操作教程
這篇文章主要介紹了將數(shù)據(jù)庫從MySQL遷移到MariaDB的基礎(chǔ)操作教程,當(dāng)然遷移之前不要忘記數(shù)據(jù)庫的備份!需要的朋友可以參考下2015-11-11deepin 2014系統(tǒng)下安裝mysql數(shù)據(jù)庫的方法步驟
這篇文章主要給大家介紹了在deepin 2014系統(tǒng)下安裝mysql數(shù)據(jù)庫的方法步驟,文中通過圖文介紹的非常詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。2017-04-04實(shí)現(xiàn)數(shù)據(jù)庫水平切分的兩個(gè)思路
今天小編就為大家分享一篇關(guān)于實(shí)現(xiàn)數(shù)據(jù)庫水平切分的兩個(gè)思路,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03- mysql從4.1版開始支持子查詢功能,在此版本前,可以用join寫連表查詢來進(jìn)行替代,但不推薦這么寫,相當(dāng)?shù)穆闊?/div> 2014-04-04
Mysql關(guān)于數(shù)據(jù)庫是否應(yīng)該使用外鍵約束詳解說明
MySQL 外鍵約束(FOREIGN KEY)是表的一個(gè)特殊字段,經(jīng)常與主鍵約束一起使用。對(duì)于兩個(gè)具有關(guān)聯(lián)關(guān)系的表而言,相關(guān)聯(lián)字段中主鍵所在的表就是主表,外鍵所在的表就是從表。外鍵用來建立主表與從表的關(guān)聯(lián)關(guān)系,為兩個(gè)表的數(shù)據(jù)建立連接,約束兩個(gè)表中數(shù)據(jù)的一致性和完整性2021-10-10最新評(píng)論