sql >> データベース >  >> RDS >> Mysql

フィールドごとの正規表現一致のMySQLカウント数

    関数を作成できます:

    delimiter ||
    DROP FUNCTION IF EXISTS substrCount||
    CREATE FUNCTION substrCount(s VARCHAR(255), ss VARCHAR(255)) RETURNS TINYINT(3) UNSIGNED LANGUAGE SQL NOT DETERMINISTIC READS SQL DATA
    BEGIN
    DECLARE count TINYINT(3) UNSIGNED;
    DECLARE offset TINYINT(3) UNSIGNED;
    DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET s = NULL;
    
    SET count = 0;
    SET offset = 1;
    
    REPEAT
    IF NOT ISNULL(s) AND offset > 0 THEN
    SET offset = LOCATE(ss, s, offset);
    IF offset > 0 THEN
    SET count = count + 1;
    SET offset = offset + 1;
    END IF;
    END IF;
    UNTIL ISNULL(s) OR offset = 0 END REPEAT;
    
    RETURN count;
    END;
    
    ||
    delimiter ;
    

    このように呼び出すことができます

    SELECT substrCount('aabbccaa', 'a') `count`;
    


    1. PHPMYSQL-127.0.0.1とlocalhostの違い

    2. MySQLの他のいくつかの列と一緒に個別の列を選択します

    3. SQLServer待機イベント-2

    4. ProxySQLを使用したMySQLとMariaDBの負荷分散