Mysql SQL-запрос для получения последнего слова в тексте - PullRequest
3 голосов
/ 26 апреля 2011

У меня есть текст, похожий на приведенный ниже в моей базе данных

this is my car
how are you,doing
how is your)health
this is not(working

когда я запрашиваю базу данных, я должен получить последние слова из этого текста. В этом примере

1st row should return "car"
2nd row should return "doing"
3rd row should return "health"
4th row should return "working"

есть идеи как это получить?

Спасибо за вашу помощь

Привет

Киран

Ответы [ 2 ]

4 голосов
/ 26 апреля 2011

Это пример:

create table lastword (
id int not null auto_increment primary key,
mytext varchar(250)
) engine = myisam;

insert into lastword (mytext) values 
('this is my car'),
('how are you,doing'),
('how is your)health'),
('this is not(working');

select *,
substring_index(replace(replace(replace(mytext,',',' '),')',' '),'(',' '),' ',-1) as last 
from lastword

+----+---------------------+---------+
| id | mytext              | last    |
+----+---------------------+---------+
|  1 | this is my car      | car     |
|  2 | how are you,doing   | doing   |
|  3 | how is your)health  | health  |
|  4 | this is not(working | working |
+----+---------------------+---------+
4 rows in set (0.00 sec)

Как видите, для выполнения вашей задачи вам понадобится много вложенных замен.

3 голосов
/ 26 апреля 2011

Если таблица текстовая, с идентификаторами столбцов и VALUE

select ID, RIGHT(VALUE, LOCATE(' ', REVERSE(VALUE))) FROM text;

Производительность, вероятно, будет неудовлетворительной, если вы получите пару больших текстовых полей.Возможно, стоит переосмыслить этот подход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...