2010-10-17 52 views
11

Tôi có 2 cột trong bảng mysql: a và b. a là giá trị chuỗi allways và b đôi khi là một giá trị chuỗi và đôi khi nó là null.Chọn giá trị cột nếu không null khác sử dụng giá trị cột khác

Làm thế nào để xây dựng một SELECT mysql để b sẽ được thực hiện nếu nó không phải là null và sẽ được thực hiện khác.

Tôi cố gắng để làm cho một số kỳ diệu với concat và nếu ... thì không có thành công ...

CẬP NHẬT - Để mở rộng câu hỏi của tôi, là có một chức năng mà sẽ làm việc như Ifnull nhưng sẽ làm việc cho null VÀ giá trị rỗng?

Trả lời

15

Sử dụng IFNULL(b, a).

Nếu expr1 không phải là NULL, IFNULL() trả về expr1; nếu không nó sẽ trả về expr2.

Đây là một chức năng cụ thể của MySQL. Bạn cũng có thể sử dụng COALESCE theo cách tương tự. Điều này sẽ làm việc trong cơ sở dữ liệu nhiều hơn nhưng nó có hiệu suất hơi tồi tệ hơn trong MySQL hơn IFNULL.

+0

Cảm ơn bạn. Rất đơn giản :-( – Jerry2

+0

Rất tiếc, tôi không tìm thấy hàm mysqlf này. – Jerry2

2
IF(expr1,expr2,expr3) 

Nếu expr1 là TRUE (expr1 <> 0 và expr1 <> NULL) thì IF() trả về expr2; nếu không nó sẽ trả về expr3.

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