서방님 avatar

[MySQL] 특정 문자 개수 세기

seobangnim

Published: 23 May 2018 › Updated: 23 May 2018[MySQL] 특정 문자 개수 세기

[MySQL] 특정 문자 개수 세기

문자열 컬럼내 '@'의 갯수를 알아내려고 찾았을때 아래 구문을 쓰는 내용을 보았다.
정말이지 대한민국은 머리 좋은 사람이 많은것 같다.. ㅎㅎ

SELECT
SUM((CHAR_LENGTH(Paper_list)-CHAR_LENGTH(REPLACE(Paper_list,'@',''))+1))
FROM T_NewsInfo WHERE Notice_Number IN ('0999427', '0999426')

전체문자갯수에서 찾고자하는 문자열을 공백으로 처리한 문자열갯수를 뺌

CREATE FUNCTION getStrCount ( inputdata varchar(250), searchStr varchar(250) )
RETURNS int
BEGIN
    declare q int;
    set q = char_length(inputdata) - char_length(replace(inputdata,searchStr,'');
    RETURN(q);
END
select getStrCount (  ,'찾고자 하는 문자열') from table;

MS-SQL

CREATE FUNCTION getStrCount (@inputdata nvarchar(max), @searchStr nvarchar(max) )
RETURNS int
AS
BEGIN
    DECLARE @q int
    SET @q = LEN(@inputdata) - LEN(REPLACE(@inputdata, @searchStr, ''))
    RETURN @q
END

1차 카테고리가 누락된 데이터 조회

Select goodsno
        , Left(category, 3) As 'depth1'
    , Group_Concat(category) As 'cate'
    , Max(Length(category)) / 3 As 'max_depth'
From gd_goods_link
Where Left(category, 3) = '005'
Group By goodsno, Left(category, 3)
Having Left(cate, 4) <> depth1+','
Select goodsno, depth1, cate, max_depth
    , Sum((Char_Length(cate)-Char_Length(Replace(cate,',',''))+1)) --  
From (
    Select goodsno
        , Left(category, 3) As 'depth1'
        , Group_Concat(category) As 'cate'
        , Max(Length(category)) / 3 As 'max_depth'
    From gd_goods_link
    Where Left(category, 3) = '005'
    Group By goodsno, Left(category, 3)
    Having Left(cate, 4) <> depth1+','
) As A

Leave [MySQL] 특정 문자 개수 세기 to:

Written by

Read more #mysql posts


Best Posts From 서방님

We have not curated any of seobangnim's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From 서방님