mysql判斷字符串是否存在幾種常見方式
sql判斷某個字符是否包含在字段中,在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中用于查找某個字符串在另一個字符串中第一次出現(xiàn)的位置的函數(shù)。它返回目標(biāo)字符串在源字符串中的起始位置,如果目標(biāo)字符串不存在,則返回0。與find_in_set相比,LOCATE不受分隔符約束,它是一種字符串匹配模式,但是無法直接返回記錄,需要手動判斷
查詢字符串位置
SELECT LOCATE('西施','西施,昭君,貂蟬,趙飛燕');
SELECT LOCATE('貂蟬','西施、昭君、貂蟬、趙飛燕');
SELECT LOCATE('貂蟬','西施昭君貂蟬趙飛燕');查詢記錄
SELECT LOCATE('貂蟬','西施、昭君、貂蟬、趙飛燕')>0;四、INSTR函數(shù)
INSTR(str,substr)I在一個字符串(str)中搜索指定的字符(substr),返回發(fā)現(xiàn)指定的字符的位置(index)。在字符串str里面,字符串substr出現(xiàn)的第一個位置(index),index是從1開始計算,如果沒有找到就直接返回0,沒有返回負(fù)數(shù)的情況。
SELECT INSTR('西施、昭君、貂蟬、趙飛燕、西施、','西施');
SELECT INSTR('西施、昭君、貂蟬、趙飛燕','昭君') > 0;從使用上看INSTR和LOCATE的作用基本相同,僅僅是用法上有極小的差異,主要在參數(shù)列表上
附:SQL中獲取一個長字符串中某個字符串出現(xiàn)次數(shù)的簡單方法
-- =============================================
-- Author: <何劍偉>
-- Create date: <2008-03-19>
-- Description: <獲取一個長字符串中某個字符串出現(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 ) -- 臨時字符串(總比@RepeatString多一個即長度大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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL進(jìn)行數(shù)據(jù)離線遷移的實現(xiàn)方案
在實際的業(yè)務(wù)需求中,mysql數(shù)據(jù)庫往往需要從一個服務(wù)器遷移或者導(dǎo)出到另外一臺服務(wù)器,這個數(shù)據(jù)導(dǎo)入導(dǎo)出的工作,是不可避免的,所以本文介紹了MySQL數(shù)據(jù)遷移的物理操作方式,需要的朋友可以參考下2026-02-02
MySQL中union和order by同時使用的實現(xiàn)方法
下面小編就為大家?guī)硪黄狹ySQL中union和order by同時使用的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-12-12
MySQL中case?when的兩種基本用法及區(qū)別總結(jié)
在mysql中case when用于計算條件列表并返回多個可能結(jié)果表達(dá)式之一,下面這篇文章主要給大家介紹了關(guān)于MySQL中case?when的兩種基本用法及區(qū)別的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05
MySQL 8.0數(shù)據(jù)字典的初始化與啟動流程
數(shù)據(jù)字典(Data Dictionary, DD)用來存儲數(shù)據(jù)庫內(nèi)部對象的信息,這些信息也被稱為元數(shù)據(jù)(Metadata),包括schema名稱、表結(jié)構(gòu)、存儲過程的定義等,本文主要介紹MySQL 8.0數(shù)據(jù)字典的基本概念和數(shù)據(jù)字典的初始化與啟動加載的主要流程,需要的朋友可以參考下2024-06-06
Pentaho Kettle工具實現(xiàn)SQL Server到MySQL數(shù)據(jù)庫的定時數(shù)據(jù)同步方案
本文介紹了使用Kettle工具實現(xiàn)SQL Server到MySQL數(shù)據(jù)庫的定時數(shù)據(jù)同步方案,首先需放置數(shù)據(jù)庫驅(qū)動并創(chuàng)建目標(biāo)表結(jié)構(gòu),通過圖形化界面配置轉(zhuǎn)換流程,該方案無需編寫代碼,完全通過圖形化操作即可實現(xiàn)跨數(shù)據(jù)庫的定時數(shù)據(jù)同步2026-03-03
mysql提示[Warning] Invalid (old?) table or database name問題的解決方
今天一個朋友的上服務(wù)器出現(xiàn)[Warning] Invalid (old?) table or database name問題,通過分析binlog日志發(fā)現(xiàn),在以下sql語句中出現(xiàn)問題,由于涉及敏感內(nèi)容,用sql語法表示2012-07-07
navicat連接Mysql數(shù)據(jù)庫報2013錯誤解決辦法
這篇文章主要介紹了navicat連接Mysql數(shù)據(jù)庫報2013錯誤的解決辦法,首先檢查MySQL是否安裝成功,然后修改配置文件,添加或注釋掉特定行,最后連接進(jìn)入MySQL服務(wù)并執(zhí)行授權(quán)命令,需要的朋友可以參考下2025-02-02

