mysql判斷字符串是否存在幾種常見方式
sql判斷某個字符是否包含在字段中,在mysql通常有以下幾種方式
一、LIKE模糊查詢
LIKE是用于模糊查找的關鍵字,使用%作為通配符,分左模式、有模式、左右模式
SELECT '貂蟬' LIKE '%貂蟬%';
二、FIND_IN_SET函數
FIND_IN_SET(str,strlist) : str 要查詢的字符串,strlist 需查詢的字段,參數以”,”分隔;該函數的作用是查詢字段(strlist)中是否包含(str)的結果,返回結果為null或記錄。
SELECT FIND_IN_SET('貂蟬','西施,昭君,貂蟬,趙飛燕');三、LOCATE函數
LOCATE(substr,str,pos)函數是MySQL中用于查找某個字符串在另一個字符串中第一次出現的位置的函數。它返回目標字符串在源字符串中的起始位置,如果目標字符串不存在,則返回0。與find_in_set相比,LOCATE不受分隔符約束,它是一種字符串匹配模式,但是無法直接返回記錄,需要手動判斷
查詢字符串位置
SELECT LOCATE('西施','西施,昭君,貂蟬,趙飛燕');
SELECT LOCATE('貂蟬','西施、昭君、貂蟬、趙飛燕');
SELECT LOCATE('貂蟬','西施昭君貂蟬趙飛燕');查詢記錄
SELECT LOCATE('貂蟬','西施、昭君、貂蟬、趙飛燕')>0;四、INSTR函數
INSTR(str,substr)I在一個字符串(str)中搜索指定的字符(substr),返回發(fā)現指定的字符的位置(index)。在字符串str里面,字符串substr出現的第一個位置(index),index是從1開始計算,如果沒有找到就直接返回0,沒有返回負數的情況。
SELECT INSTR('西施、昭君、貂蟬、趙飛燕、西施、','西施');
SELECT INSTR('西施、昭君、貂蟬、趙飛燕','昭君') > 0;從使用上看INSTR和LOCATE的作用基本相同,僅僅是用法上有極小的差異,主要在參數列表上
附:SQL中獲取一個長字符串中某個字符串出現次數的簡單方法
-- =============================================
-- Author: <何劍偉>
-- Create date: <2008-03-19>
-- Description: <獲取一個長字符串中某個字符串出現次數>
-- =============================================
ALTER FUNCTION [ dbo ] . [ fun_RepeatCharNum ]
(
@CodeString varchar ( 2000 ),
@RepeatString varchar ( 200 )
)
RETURNS int
AS
BEGIN
DECLARE
@RepeatStringLen int , -- 檢測重復字符的長串
@TempString varchar ( 500 ) -- 臨時字符串(總比@RepeatString多一個即長度大1)
SET @RepeatStringLen = LEN ( @RepeatString )
SET @TempString = Replicate ( ' | ' , @RepeatStringLen ) + ' | '
RETURN LEN ( REPLACE ( @CodeString , @RepeatString , @TempString )) - LEN ( @CodeString )
END到此這篇關于mysql判斷字符串是否存在幾種常見方式的文章就介紹到這了,更多相關sql判斷字符串是否存在內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Windows下MySQL 5.6安裝及配置詳細圖解(大圖版)
這篇文章主要介紹了Windows下MySQL 5.6安裝及配置詳細圖解(大圖版),需要的朋友可以參考下2016-04-04
Linux下將數據庫從MySQL遷移到MariaDB的基礎操作教程
這篇文章主要介紹了將數據庫從MySQL遷移到MariaDB的基礎操作教程,當然遷移之前不要忘記數據庫的備份!需要的朋友可以參考下2015-11-11

