Обновление с первой пустой строки определенного столбца в таблице MySQL - PullRequest
0 голосов
/ 03 января 2019

Скажем, у меня есть такая таблица:

enter image description here

Все данные случайные, электронное письмо или телефон могут принадлежать любому имени, адресу ,...

Теперь у меня есть еще несколько писем, которые я тоже добавлю.Помимо использования цикла PHP explode и for для обновления столбца электронной почты, я все еще задаюсь вопросом, как запросить первую пустую строку в столбце электронной почты, чтобы начать с нее.

Оцените любую помощь!

Ответы [ 3 ]

0 голосов
/ 03 января 2019

Если:

  • Под "пустым" подразумевается строка с нулевыми значениями,
  • , а под "первым" подразумевается строка с наименьшим значением id.

Тогда я бы сделал:

select min(id)
from my_table
where name is null
  and address is null
  and email is null
  and phone is null
0 голосов
/ 03 января 2019

Если «первый» переводится как «с самым низким идентификатором», вы можете использовать подзапрос, который проверяет, есть ли более низкий идентификатор с пустым адресом электронной почты.

SELECT *
       FROM elbat t1
       WHERE t1.email IS NULL
             AND NOT EXISTS (SELECT *
                                    FROM elbat t2
                                    WHERE t2.id < t1.id
                                          AND t2.email IS NULL);

(Измените IS NULL на = '', если под "пустым" подразумевается пустая строка, а не ноль.)

Но если все эти значения не связаны, вы должны исправить этот дизайн и иметь четыре независимые таблицы. Один для имени, один для адресов, один для электронной почты и один для телефонных номеров. И вы не должны хранить пустые значения, если они не имеют значения в них. Таким образом, вы можете просто набрать INSERT и вам не нужно будет искать пустую строку.

0 голосов
/ 03 января 2019

Мне все еще интересно, как запросить первую пустую строку в столбце электронной почты

Вы, похоже, ищете идентификатор самой низкой строки, где электронное письмо равно нулю: это просто SELECT оператор в строках с пустым адресом электронной почты, с ORDER BY для сортировки результатов по id и предложением LIMIT для сохранения только первого результата.

SELECT id
FROM table
WHERE email IS NULL
ORDER BY id
LIMIT 1

Вы можете комбинировать критерии вWHERE предложение с AND с и OR с для уточнения поиска.Чтобы отобразить все результаты, а не только первый, удалите предложение LIMIT.

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