Как проверить все ли столбцы SQL заполнены?

110
09 февраля 2021, 23:30

У меня есть таблица mysql с 50 столбцами. Как проверить на PHP, что все столбцы заполнены?

Answer 1

Получить список записей с признаком, есть ли хотя бы в одном поле NULL:

SELECT id, 
       CONCAT(field1, 
              field2, 
           /* ..... , */
              field50) IS NULL record_contain_nulls 
FROM table

Получить список записей, где хотя бы в одном поле есть NULL:

SELECT id
FROM table
WHERE CONCAT(field1, 
             field2, 
          /* ..... , */
             field50) IS NULL

Просто проверить, есть ли в таблице хотя бы одна запись, где хотя бы в одном поле есть NULL:

SELECT MAX(CONCAT(field1, 
                  field2, 
               /* ..... , */
                  field50) IS NULL) table_contain_nulls 
FROM table
Answer 2

Тут вариантов несколько, и всё зависит от того, зачем вам это нужно.

1.Можно, как уже написал @AntonShchyrov, при создании базы указывать значение столбца not null

CREATE TABLE users (
    id INT(11) NOT NULL AUTO_INCREMENT,
    name TEXT NOT NULL,
    PRIMARY KEY (id)
);

И тогда нельзя будет добавить запись с пустым значением.

2.Можно перед отправкой запроса делать проверку

function sendMail($email,$name,$text){
    if ( !empty($email) || !empty($name) || !empty($text) ) {
        // отправляем письмо или что-то другое делаем и возвращаем true
        return true;
    } else {
        // если какое-то поле пустое - возвращаем ошибку или просто false
        return false;
    }
}
READ ALSO
Сумма найденых элементов

Сумма найденых элементов

В битриксе через CIBlockElement::GetList вывожу полученные элементы

122
Нужно дополнить Get запрос

Нужно дополнить Get запрос

Есть ссылка на список товаров:

105
preg_match и Динамический pattern

preg_match и Динамический pattern

Вообщем есть такая функция:

102
Найти изменения в новой версии файла

Найти изменения в новой версии файла

Есть две версии файла, старая и новаяНужно найти изменения и записать новые строки в базу данных

125