DB::Exception: Invalid type for filter in PREWHERE: Array(String) (version 21.1.3.32 (official build))
Есть таблица в кликхаус.Выполняю следующий запрос используя метод extract.
select * from posts where extract(text,'(виртуальны\w{,4}\s|дата-центр\w{,4}\s)') LIMIT 200
При выполнение запроса выходит следующая ошибка:
Code: 59, e.displayText() = DB::Exception: Invalid type for filter in PREWHERE: Array(String) (version 21.1.3.32 (official build))
Гуглил гугл ответов не дал.Думал дело в неправильности регулярного выражения но проверил через этот сайт регулярка правильная. Что я делаю не так ?
Ответы (1 шт):
Автор решения: vladimir
→ Ссылка
Я не могу воспроизвести ошибку - получаю 'Invalid type for filter in WHERE: String':
SELECT toString(number) AS text
FROM numbers(5)
WHERE extract(text, '(виртуальны\\w{,4}\\s|дата-центр\\w{,4}\\s)')
/*
Received exception from server (version 21.2.3):
Code: 59. DB::Exception: Received from localhost:9000. DB::Exception: Invalid type for filter in WHERE: String.
*/
Тем не менне используйте функции empty или notEmpty, чтобы исправить ошибку:
SELECT toString(number) AS text
FROM numbers(5)
WHERE empty(extract(text, '(виртуальны\\w{,4}\\s|дата-центр\\w{,4}\\s)'))
/*
┌─text─┐
│ 0 │
│ 1 │
│ 2 │
│ 3 │
│ 4 │
└──────┘
*/