Как проверить нулевое значение из возвращаемого значения в цикле запросов ColdFusion - PullRequest
15 голосов
/ 09 февраля 2012
<cfloop query="GET_ALL_STUDENTS>
 <cfif #student_id# is  NOT NULL>
 <!--- do something--->
 </cfif>
</cfloop>   

Выше показано, как я зацикливаю свой запрос cf, который возвращает нулевое значение, и я хочу проверить, является ли student_id нулевым или нет. Это то, что я пытался, и это не удалось. Может кто-нибудь сказать мне лучший способ?

Ответы [ 3 ]

28 голосов
/ 09 февраля 2012

Вы можете использовать ifNull () вашей базы данных или тому подобное.Однако в ColdFusion запросы возвращаются в виде строк.В вашей ситуации проще всего проверить наличие непустой строки:

<cfif len(student_id)>

Кстати, вам не нужны знаки фунта внутри оценки: только при использовании переменной как литерала(например, при выводе)

13 голосов
/ 09 февраля 2012

В Adobe ColdFusion 9 вы можете сделать:

<cfif IsNull(student_id)>
</cfif>

Или, так как вы делаете противоположное:

<cfif NOT IsNull(student_id)>
</cfif>
3 голосов
/ 10 февраля 2012

Похоже, что запрос извлекает всех студентов и затем выполняет циклический перебор записей, чтобы найти поля student_id, которые имеют значение NULL.

Было бы более эффективно написать запрос, который конкретно запрашивал бы записи, которыеhave student_id IS NULL.

Метод сбора всех записей таблицы учеников будет отлично работать, если у вас около 100 учеников.Что происходит, когда он запускается в производство и в нем обучается 25 000 студентов?

...