Имам mysql заявка с REGEXP, която съвпада с началото на полето с „A“, „An“ и „The“, последвано от интервал, ако съвпадне, след това изрязвам полето от началото на първия интервал, след което съпоставям началото на полето със специален символ като (','',[:space:]) ако да, тогава изрежете всички водещи специални символи. Mysql заявката е с CASE
така:
CASE
WHEN field_data_field_display_title_field_display_title_value REGEXP '(^(A|An|The)[[:space:]])' = 1 THEN
TRIM(SUBSTR(field_data_field_display_title_field_display_title_value , INSTR(field_data_field_display_title_field_display_title_value ,' ')))
WHEN field_data_field_display_title_field_display_title_value REGEXP '(^[\"\'[:space:]])' = 1 THEN
TRIM(SUBSTR(field_data_field_display_title_field_display_title_value ,2))
ELSE field_data_field_display_title_field_display_title_value
END
Не мога да отрежа всички водещи специални символи, докато мога да отрежа първия водещ специален знак, като предам '2' във функцията SUBSTR
. Тъй като mysql не поддържа група за улавяне, така че не мога да получа съвпадащата стойност в уловената група.
Така че въпросът ми е как мога да получа позицията на първия буквен знак в полето с mysql заявка, така че да мога да предам тази позиция във функцията SUBSTR
, за да отрежа всички водещи специални символи. Опитах с [:alpha:] клас като:
TRIM(SUBSTR(field_data_field_display_title_field_display_title_value ,
INSTR(field_data_field_display_title_field_display_title_value ,[:alpha:])))
но дава грешка в синтаксиса на mysql. Или някой може да ми предложи някакъв друг подход за изрязване на всички водещи специални знаци.
Благодаря предварително!