MySQL Соответствует одному номеру из сохраненного флажка implode [duplicate]

Если вы получаете эту ошибку в сборке где-то в другом месте, в то время как ваша среда IDE говорит, что все в порядке, проверьте, используете ли вы одни и те же версии Java в обоих местах.

Например, Java 7 и Java 8 имеют разные API, поэтому вызов несуществующего API в старой версии Java приведет к этой ошибке.

-1
задан DNA 21 February 2015 в 00:02
поделиться

4 ответа

Лучшим решением будет нормализация вашей схемы. У вас должна быть отдельная таблица с одной строкой для каждого дочернего элемента вместо списка с разделителями-запятыми. Затем вы можете присоединиться к этой таблице, чтобы найти родителя с определенным дочерним элементом. См. Ответ @ themite для примера этого.

Но если вы не можете сделать это по какой-либо причине, вы можете использовать FIND_IN_SET :

WHERE FIND_IN_SET('Alex', children)
5
ответ дан Barmar 20 August 2018 в 15:56
поделиться
  • 1
    Спасибо, @Бармар, не знал об этом. – André Ferraz 21 February 2015 в 00:20
  • 2
    Эй, Бармар и сэкономленный мой день, чувак, я действительно благодарю тебя, мой герой-чувак: D – user3479658 21 February 2015 в 00:20

Я предпочел бы сделать разные таблицы для детей и родителей примерно такими.

Таблица для родителей

parent_id     name            
1             Roberto         
2             Maria           
3             Mary     

Таблица для детей

children_id  parent_id  name
1            1          Michael     
2            1          Dia 
3            2          John

.... и т. д.

0
ответ дан André Ferraz 20 August 2018 в 15:56
поделиться

Вот почему вы хотите иметь две таблицы здесь.

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'
 )
0
ответ дан Joep Beusenberg 20 August 2018 в 15:56
поделиться

Вы должны разделить данные на две таблицы.

первая будет выглядеть так:

ID    Name
1     Roberto
2     Maria
3     Mary

И вторая, подобная этой

ParentId     child
1            Michael
1            Dia
2            John
2            Alex

и т. д.

, тогда вы могли бы выполнить требуемый запрос, не беспокоясь о like, и ваши данные будут гораздо более полезными

0
ответ дан thermite 20 August 2018 в 15:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: