несколько полей формы с одним и тем же путем вставки в БД весной - PullRequest
0 голосов
/ 26 июня 2019

Мне нужно вставить данные в БД в полях формы, которые имеют один и тот же путь, и я хочу сохранить его с разными идентификаторами, а вместо этого объединить его с ",", как я могу это сделать?

Я попытался создать псевдоним в SQL, но он сохранился в том же имени поля базы данных с конкатенацией с ","

я ожидал в дБ, когда вставляю это

EX.

имя поля дБ = описание

входное значение 1 = "Джон";

input 2 value = "doe";

идентификатор описания

1 Джон

2 лань

выше - мой ожидаемый результат

но в моем случае, когда я вставляю, это показывает

идентификатор описания

1 Джон, Доу

Может ли кто-нибудь помочь мне достичь этого результата? THANKYOU!

1 Ответ

0 голосов
/ 26 июня 2019

Позвольте мне представить аналогичную ситуацию. У вас есть база данных людей, и вы обеспокоены тем, что у каждого человека может быть несколько телефонных номеров.

CREATE TABLE Persons (
    person_id INT UNSIGNED AUTO_INCREMENT,
    ...
    PRIMARY KEY(person_id) );

CREATE TABLE PhoneNumbers (
    person_id INT UNSIGNED,
    phone VARCHAR(20) CHARACTER SET ascii,
    type ENUM('unknown', 'cell', 'home', 'work'),
    PRIMARY KEY(person_id, phone) );

Таблица PhoneNumbers имеет отношение «многие к 1» между телефонными номерами и людьми. (Неважно, если два человека используют один и тот же номер.)

SELECT  ...
        GROUP CONCAT(pn.phone) AS phone_numbers,
        ...
    FROM Persons AS p
    LEFT JOIN PhoneNumbers AS pn  USING(person_id)
    ...;

доставит список телефонных номеров (например: 123-456-7890,333-444-5555) для каждого выбранного человека. Из-за LEFT он доставит NULL, если у человека нет связанных телефонов.

Чтобы ответить на ваш другой вопрос: не практично разбивать коммалист на компоненты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...