Вы бы написать запрос, который что-то вроде этого:
<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).
Существует также атрибут null для тега cfqueryparam. Это полезно, когда значение является динамическим, и вы можете сделать что-то вроде этого: set col = –
Хорошая точка! У меня были проблемы с использованием этого в предложении WHERE (он, похоже, не работает так, как в случае с версиями CF, которые я пробовал), но он отлично подходит для предложений SET или предложений VALUES в запросах UPDATE и INSERT (соответственно). Хорошая вещь для использования, но убедитесь, что вы понимаете, что она делает, когда она работает, а когда нет. знак равно –