Wednesday, September 3, 2008

ใช้ IF , CASE ใน query MySQL

ที่มา : Original link , MySQL Query Browser

# ไม่เคยใช้เหมือนกันตอนเรียนก็พึ่งมาเคยใช้ตอนทำงานอ่ะ

# เคยเขียนเงื่อนไขแต่ในโปแกรมไม่เคยเขียนใน query statement MySQL

# How to use CASE.

mysql> SELECT CASE [a] WHEN [c1] THEN ['r1']
-> WHEN [c2] THEN ['two'] ELSE ['r3'] END;

[a] คือ ค่าที่เราจะทำการ Select เพื่อนำมาเปรียบเทียบ

[c1] คือ เงื่อนไขที่ 1 สำหรับเปรียบเทียบกับ [a]
[r1] คือ ถ้าเงื่อนไขที่ 1 ถูกต้องจะให้ผลลัพธ์เป็น r1

[c2] คือ เงื่อนไขที่ 2 สำหรับเปรียบเทียบกับ [a]
[r2] คือ ถ้าเงื่อนไขที่ 2 ถูกต้องจะให้ผลลัพธ์เป็น r2

[r3] คือ ถ้าเงื่อนไขที่ 1 และ 2 ไม่ถูกต้องจะให้ผลลัพธ์เป็น r3

# Sample

mysql> SELECT CASE 1 WHEN 1 THEN 'one'
-> WHEN 2 THEN 'two' ELSE 'more' END;
-> 'one'
mysql> SELECT CASE WHEN 1>0 THEN 'true' ELSE 'false' END;
-> 'true'
mysql> SELECT CASE BINARY 'B'
-> WHEN 'a' THEN 1 WHEN 'b' THEN 2 END;
-> NULL

# How to use IF.

mysql> SELECT IF([a] > [c],[r1],[r2]);

[a] คือ ค่าที่เราจะทำการ Select เพื่อนำมาเปรียบเทียบ
[c] คือ เงื่อนไข สำหรับเปรียบเทียบกับ [a]
[r1] คือ ถ้าเงื่อนไขถูกต้องจะให้ผลลัพธ์เป็น r1
[r2] คือ ถ้าเงื่อนไขไม่ถูกต้องจะให้ผลลัพธ์เป็น r2

# Sample

mysql> SELECT IF(1>2,2,3);
-> 3
mysql> SELECT IF(1<2,'yes','no');> SELECT IF(0.1,1,0);
-> 0
mysql> SELECT IF(0.1<>0,1,0);
-> 1

# How to use IFNULL.

mysql> SELECT IFNULL(1,0);
-> 1
mysql> SELECT IFNULL(NULL,10);
-> 10
mysql> SELECT IFNULL(1/0,10);
-> 10
mysql> SELECT IFNULL(1/0,'yes');
-> 'yes'

# จะเปรียบเทียบค่ากับ null ต้องใช้ is null
# เช่น select [id] where [name] is null

No comments:

Post a Comment

Popular Posts