2011-01-05 2 views
1

У меня есть база данных, которая может иметь значение в одном из полей. Обстоятельству может потребоваться удалить начальное значение и заменить его на NULL.Вставка значения NULL в MySQL из Coldfusion

Как ввести значения NULL в пустое поле?

Цените его.

ответ

2

Вы бы написать запрос, который что-то вроде этого:

<cfquery name="queryName" datasource="dsn"> 
    UPDATE tableName SET fieldName = NULL 
    WHERE recordId = <cfqueryparam cfsqltype="cf_sql_integer" value="#recordId#" /> 
</cfquery> 

Кроме того, есть разница между пустой строкой и значение NULL. То, что нужно помнить о NULL, состоит в том, что оно не приравнивается ни к чему, кроме NULL. Но он также не приравнивается к значениям, отличным от NULL. Так что если у вас есть три записи в таблице:

ID  VALUE 
1  15 
2  NULL 
3  30 

При выполнении этого запроса:

SELECT ID from tableName where value != 15 

вы получите только записи 3. Путь, чтобы убедиться, запись 2 включена в набор результатов является чтобы изменить ваш запрос как таковой:

SELECT ID from tableName where coalesce(value,16) != 15 

цель сливаются, чтобы проверить первый параметр для NULL-Несс, и использовать значение второго параметра вместо если первый параметр является NULL. В приведенном выше примере я поставил '16' в качестве второго параметра, но вы можете использовать любое значение, которое вы хотите, если оно не совпадает с тем, для чего вы сравниваете (в данном случае 15).

+1

Существует также атрибут null для тега cfqueryparam. Это полезно, когда значение является динамическим, и вы можете сделать что-то вроде этого: set col =

+0

Хорошая точка! У меня были проблемы с использованием этого в предложении WHERE (он, похоже, не работает так, как в случае с версиями CF, которые я пробовал), но он отлично подходит для предложений SET или предложений VALUES в запросах UPDATE и INSERT (соответственно). Хорошая вещь для использования, но убедитесь, что вы понимаете, что она делает, когда она работает, а когда нет. знак равно –

Смежные вопросы