mysql matches the end of the specified character

After learning " mysql regular expression ", let's apply it in practice.

match the end of the specified character

Condition:

 data preparation:

   A,B,C;A,B,C,D;A,B,D;A,B,C,D,H;A,B,E,G,D,H;A,B,E;A,B,E,G;A,B,F;A,B,F,H;

SELECT 'A,B,C' AS path UNION ALL 
SELECT 'A,B,C,D' AS path UNION ALL 
SELECT 'A,B,D'  AS path UNION ALL
SELECT 'A,B,C,D,H'  AS path UNION ALL
SELECT 'A,B,E,G,D,H'  AS path UNION ALL
SELECT 'A,B,E'  AS path UNION ALL 
SELECT 'A,B,E,G'  AS path UNION ALL 
SELECT 'A,B,F'  AS path UNION ALL
SELECT 'A,B,F,H'  AS path

Query ending with B,D or B,C.

like '%speacialWord'

SELECT * FROM (
SELECT 'A,B,C' AS path UNION ALL
SELECT 'A,B,C,D' AS path UNION ALL
SELECT 'A,B,D'  AS path UNION ALL
SELECT 'A,B,C,D,H'  AS path UNION ALL
SELECT 'A,B,E,G,D,H'  AS path UNION ALL
SELECT 'A,B,E'  AS path UNION ALL
SELECT 'A,B,E,G'  AS path UNION ALL
SELECT 'A,B,F'  AS path UNION ALL
SELECT 'A,B,F,H'  AS path ) AS temp
WHERE path LIKE '%B,C' OR path LIKE '%B,D' ;

REGEXP 'specialWord$'

SELECT * FROM (
SELECT 'A,B,C' AS path UNION ALL
SELECT 'A,B,C,D' AS path UNION ALL
SELECT 'A,B,D'  AS path UNION AL
SELECT 'A,B,C,D,H'  AS path UNION AL
SELECT 'A,B,E,G,D,H'  AS path UNION AL
SELECT 'A,B,E'  AS path UNION AL
SELECT 'A,B,E,G'  AS path UNION AL
SELECT 'A,B,F'  AS path UNION AL
SELECT 'A,B,F,H'  AS path ) AS temp
WHERE path REGEXP 'B,(C|D)$' ;

For multiple, it is more convenient to use regular expressions;

doesn't start with anything

-- 不是以数字开头
SELECT * FROM x_table WHERE type NOT REGEXP '^[0-9]' ;

-- 不是以字母开头
SELECT * FROM x_table WHERE type NOT REGEXP '^[a-zA-Z]' ;


-- 不是数字和特殊字符开头
SELECT * FROM x_table WHERE type REGEXP '^[@#$%&0-9]' ;

Summarize:

        Matching the end of a specific character, simple, can be handled with like. For multiple ones, it is suitable to write in a regular way, which is simpler. It can also be handled in other ways according to the actual situation.

Guess you like

Origin blog.csdn.net/qq_35461948/article/details/130187621