2012-02-09 39 views
13
<cfloop query="GET_ALL_STUDENTS> 
<cfif #student_id# is NOT NULL> 
<!--- do something---> 
</cfif> 
</cfloop> 

Trên đây là cách tôi lặp lại truy vấn cf trả về giá trị null và tôi muốn kiểm tra xem student_id có rỗng hay không. Đây là những gì tôi đã thử và nó đã thất bại. Bất cứ ai có thể cho tôi biết một cách tốt hơn?Cách kiểm tra giá trị null từ giá trị trả về trong vòng lặp truy vấn ColdFusion

Trả lời

25

Bạn có thể sử dụng ifNull của cơ sở dữ liệu của bạn() hoặc tương tự. Tuy nhiên, trong Coldfusion, các truy vấn được trả về dưới dạng chuỗi. Với tình huống của bạn, cách dễ nhất là kiểm tra chuỗi không trống:

<cfif len(student_id)> 

Bằng cách này, bạn không cần ký hiệu bảng Anh bên trong đánh giá: chỉ khi sử dụng biến làm chữ (như vậy khi xuất ra)

+6

Làm rõ nhỏ, giá trị 'null' được chuyển thành một chuỗi rỗng" "trong truy vấn. – Leigh

+0

cái này đúng và hoạt động tốt –

11

Trong Adobe ColdFusion 9, bạn có thể làm:

<cfif IsNull(student_id)> 
</cfif> 

Hoặc kể từ khi bạn đang làm điều ngược lại:

<cfif NOT IsNull(student_id)> 
</cfif> 
+0

Nếu biến là kết quả từ truy vấn cơ sở dữ liệu, kết quả rỗng sẽ trở thành một chuỗi rỗng trong CF, thì bạn phải sử dụng 'len()'. – Roland

2

Có vẻ như truy vấn đang truy lục tất cả các sinh viên và sau đó ghi lại các bản ghi để tìm các trường student_id là NULL.

Sẽ hiệu quả hơn khi viết truy vấn truy vấn cụ thể các bản ghi có student_id IS NULL.

Phương pháp lấy tất cả các bản ghi của bảng học sinh sẽ hoạt động tốt khi bạn có 100 sinh viên trở lên. Điều gì xảy ra khi nó được đưa vào sản xuất và có 25.000 sinh viên?

Các vấn đề liên quan