InfluxDB, как избежать квадратных скобок "[" - PullRequest
3 голосов
/ 26 марта 2019

Я запрашиваю базу данных притока, как показано ниже,

select * from measurement where '/cda/stats/@name' =~ /cda\/stats.*/ limit 5;

Вышеупомянутый запрос работает нормально, но когда я пытаюсь указать квадратные скобки в строке запроса, он не работает, например, "/cda/stats/[name='set']

select * from mgmgrand where '/cda/stats/@name' =~ /cda\/stats[name='set'].*/ limit 5;

Не уверен, как избежать квадратных скобок в приведенном выше запросе.

Обратная косая черта "\" не работает с квадратными скобками.

1 Ответ

1 голос
/ 12 апреля 2019

Я проверил это в притоке БД и нашел странное решение (я не знаю, почему это работает).Если ваш идентификатор не заключен в кавычки, заменяя одинарные кавычки на двойные, замена '/cda/stats/@name' на "/cda/stats/@name", кажется, исправит это.

select * from mgmgrand where "/cda/stats/@name" =~ /\[/
//matches the value /cda/stats/[name='set']

Без изменения кавычек он работает нормально для значения без [, но не работает, когдапытается сопоставить [символ.

select * from mgmgrand where '/cda/stats/@name' =~ /cda/
//matches the value /cda/stats/[name='set'] 
select * from val1 where '/cda/stats/@name' =~ /\[/
//does not give an output

Если вы используете указанный в кавычках идентификатор, заменив '/cda/stats/@name' на "'/cda/stats/@name'" или "\"/cda/stats/@name\"", исправьте его.

...