MySQL, лучше для вставки Пустой или пустой строки?

Можно использовать .ToString() для получения String от StringBuilder.

223
задан dreftymac 8 June 2019 в 00:08
поделиться

4 ответа

Используя NULL , вы можете различать «не помещать данные» и « поместите пустые данные ».

Еще несколько отличий:

  • A LENGTH of NULL равно NULL , LENGTH пустая строка - 0 .

  • NULL сортируются перед пустыми строками.

  • COUNT (message) подсчитывает пустые строки, но не NULL s

  • Вы можете искать пустую строку с помощью связанной переменной, но не по NULL . Этот запрос:

     SELECT *
    ИЗ mytable 
    ГДЕ mytext =?
    

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

     SELECT *
    ИЗ mytable 
    ГДЕ mytext IS NULL
    
216
ответ дан 23 November 2019 в 04:00
поделиться

Одна вещь, которую следует учитывать, если вы когда-либо план переключения баз данных заключается в том, что Oracle не поддерживает пустые строки . Они автоматически преобразуются в NULL, и вы не можете запрашивать их с помощью предложений типа WHERE somefield = '' .

42
ответ дан 23 November 2019 в 04:00
поделиться

Следует иметь в виду, что NULL может значительно усложнить кодовые пути. В Python, например, большинство адаптеров баз данных / ORM сопоставляют NULL с None .

Например:

print "Hello, %(title)s %(firstname) %(lastname)!" % databaserow

может привести к «Hello, None Joe Doe!» Чтобы избежать этого, вам понадобится что-то вроде этого кода:

if databaserow.title:
    print "Hello, %(title)s %(firstname) %(lastname)!" % databaserow
else:
    print "Hello, %(firstname) %(lastname)!" % databaserow

Что может значительно усложнить ситуацию.

9
ответ дан 23 November 2019 в 04:00
поделиться

Я не знаю, какой здесь лучший метод, но я бы обычно ошибался в пользу null, если вы не хотите, чтобы null означал что-то отличное от пустой строки, а ввод пользователя соответствует ваше определение пустой строки.

Обратите внимание, что я говорю, что ВАМ нужно определить, как вы хотите, чтобы они были разными. Иногда имеет смысл сделать их разными, иногда нет. Если нет, просто выберите один и придерживайтесь его. Как я уже сказал, большую часть времени я предпочитаю NULL.

О, и имейте в виду, что если столбец имеет значение NULL, запись вряд ли появится практически в любом запросе, который выбирает (имеет предложение where, в терминах SQL) на основе этого столбца, если, конечно, не выбран нулевой столбец.

5
ответ дан 23 November 2019 в 04:00
поделиться
Другие вопросы по тегам:

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