From your requirement and the comments, it looks like the LIKE operator should be pretty close to what you need:
SELECT *
FROM mytable
WHERE mycolumn LIKE 'Status Changed from % to Completed'
This will allow any sequence of characters as the previous status.
Else, if you know in advance the list of possible status values, you can make the filtering more accurate with a regexp:
SELECT *
FROM mytable
WHERE mycolumn REGEXP 'Status Changed from (Needs Action)|(Open) to Completed'
The REGEXP operator checks whether values in the column match the given regular expression. The pipe (|) stands for the alternation operator (at least one of the value must match).
Demo on DB Fiddle
create table mytable (
mycolumn varchar(500)
);
insert into mytable values
('Status Changed from Needs Action to Completed'),
('Status Changed from Open to Completed'),
('Not a relevant record');
Query #1
SELECT *
FROM mytable
WHERE mycolumn LIKE 'Status Changed from % to Completed';
| mycolumn |
| --------------------------------------------- |
| Status Changed from Needs Action to Completed |
| Status Changed from Open to Completed |
Query #2
SELECT *
FROM mytable
WHERE mycolumn REGEXP 'Status Changed from (Needs Action)|(Open) to Completed';
| mycolumn |
| --------------------------------------------- |
| Status Changed from Needs Action to Completed |
| Status Changed from Open to Completed |
WHERE column LIKE 'Status Changed from % to Completed'WHERE column RLIKE 'Status Changed from (Needs Action|Incomplete) to Completed'[a-zA-Z0-9]?[a-zA-Z0-9]+