获取在MySQL

时间:2019-04-17 06:15:18

标签: mysql

在MySQL的一栏中,我具有如下所示的数据。

column_1
------------------
TEST00001XXXX
TEST0003302XX
TEST000403XXX
TEST00004
TEST00003444XXXX

我想找到每个字符串末尾附加的“ X”的数量。

注意:

  • 在附加“ X”之前,每个字符串的长度不是恒定的。
  • 字符“ X”区分大小写。 (大写的X在末尾添加 字符串)。
  • 字符“ X”可以出现在字符串之间 也。我需要在末尾附加“ X”的数量。

预期结果:

column_1           |  column_2
--------------------------------
TEST00001XXXX      | 4
TEST0003302XX      | 2    
TEST000403XXX      | 3
TEST00004          | 0
TEST00003444XXXX   | 4

2 个答案:

答案 0 :(得分:1)

您可以像这样使用TRIM

SELECT column_1, 
       LENGTH(column_1) - LENGTH(TRIM(TRAILING 'X' FROM column_1)) AS column_2
FROM mytable

Demo here

答案 1 :(得分:0)

使用 LENGTH REPLACE ,您可以实现以下目标:

SELECT column_1, LENGTH(column_1) - LENGTH(REPLACE(column_1, 'X', '')) AS column_2

示例执行:

CREATE TABLE my_table (column_1 VARCHAR (100));

INSERT INTO my_table (column_1) VALUES
('TEST00001XXXX'),
('TEST0003302XX'),
('TEST000403XXX'),
('TEST00004'),
('TEST00003444XXXX');

SELECT column_1, LENGTH(column_1) - LENGTH(REPLACE(column_1, 'X', '')) AS column_2
FROM my_table

输出:

column_1            column_2
--------------------------------
TEST00001XXXX       4
TEST0003302XX       2
TEST000403XXX       3
TEST00004           0
TEST00003444XXXX    4