Bạn có thể làm điều đó bằng cách kết hợp với một dãy số đã sản xuất được sử dụng để chọn ra từ thứ n. Thật không may, mysql không có phương thức tích hợp nếu tạo một chuỗi, vì vậy nó hơi xấu, nhưng đây là:
select
substring_index(substring_index(title, ' ', num), ' ', -1) word,
count(*) count
from job j
join (select 1 num union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9 union select 10 union select 11 union select 12) n
on length(title) >= length(replace(title, ' ', '')) + num - 1
group by 1
order by 2 desc
Xem bản trình diễn trực tiếp trên SQLFiddle sử dụng dữ liệu của bạn và tạo ra kết quả mong đợi.
Đáng buồn thay, giới hạn của việc phải mã hóa mọi giá trị của chuỗi số cũng giới hạn số từ của cột sẽ được xử lý (trong trường hợp này là 12). Sẽ không thành vấn đề nếu có quá nhiều số trong chuỗi và bạn luôn có thể thêm nhiều số hơn để bao gồm văn bản đầu vào dự kiến lớn hơn.