У меня есть таблица со столбцом, содержащая список предков, отформатированных так: «1/12/45». 1 - корень, 12 - дети 1 и т. Д.sql in clause не работает
Мне нужно найти все записи, имеющие определенный узел/число в их списке предков. Для этого я написал SQL заявление:
select * from nodes where 1 in (nodes.ancestry)
Я получаю следующее заявление об ошибке: оператор не существует: число = текст
Я попытался это так:
select * from nodes where '1' in (nodes.ancestry)
но возвращает только записи, имеющие 1 в поле их происхождения. Не тот, который имеет, например, 1/12/45
Что случилось?
Спасибо!
Что заставило вас думать, что 'в' является правильным инструментом для эта работа? Или что это волшебным образом знает, как интерпретировать ваш столбец 'ancestry'? –
Если у вас есть возможность переделать свои таблицы, вы должны. Сохранение структурированной информации в таких строках не рекомендуется, и вы получите только все проблемы. – barsju