Если вы получаете эту ошибку в сборке где-то в другом месте, в то время как ваша среда IDE говорит, что все в порядке, проверьте, используете ли вы одни и те же версии Java в обоих местах.
Например, Java 7 и Java 8 имеют разные API, поэтому вызов несуществующего API в старой версии Java приведет к этой ошибке.
Лучшим решением будет нормализация вашей схемы. У вас должна быть отдельная таблица с одной строкой для каждого дочернего элемента вместо списка с разделителями-запятыми. Затем вы можете присоединиться к этой таблице, чтобы найти родителя с определенным дочерним элементом. См. Ответ @ themite для примера этого.
Но если вы не можете сделать это по какой-либо причине, вы можете использовать FIND_IN_SET
:
WHERE FIND_IN_SET('Alex', children)
Я предпочел бы сделать разные таблицы для детей и родителей примерно такими.
Таблица для родителей
parent_id name
1 Roberto
2 Maria
3 Mary
Таблица для детей
children_id parent_id name
1 1 Michael
2 1 Dia
3 2 John
.... и т. д.
Вот почему вы хотите иметь две таблицы здесь.
parents:
id name
1 Roberto
2 Maria
3 Mary
children:
id parentid name
1 1 Michael
2 1 Dia
3 2 John
4 2 Alex
5 3 Alexandre
6 3 Diana
И теперь вы можете запросить это гораздо более эффективно с помощью соединения или существует:
SELECT *
FROM Parents
WHERE EXISTS(
SELECT *
FROM Children
WHERE parentid=Parents.id
AND Children.name='Alex'
)
Вы должны разделить данные на две таблицы.
первая будет выглядеть так:
ID Name
1 Roberto
2 Maria
3 Mary
И вторая, подобная этой
ParentId child
1 Michael
1 Dia
2 John
2 Alex
и т. д.
, тогда вы могли бы выполнить требуемый запрос, не беспокоясь о like
, и ваши данные будут гораздо более полезными