2012-03-10 38 views
7

我想显示在我的数据库结果萨姆值的语句,我用这个代码,但我不能成功:倍数。如果在MySQL

SELECT item_code, IF(category_code = 'HERR1', 'NO', 1) OR (category_code = 'COLN5', 'NO', 2) AS category_code, item_name, item_quantity FROM qa_items 

编辑: 我想显示例如:

If category_code = 'HERR1' 
Display = 1 
else if category_code = 'COLN5' 
Display = 2 
End If 

如果任何人有任何想法,将不胜感激

+0

好吧,select语句不会导致底层数据发生任何变化。您需要改为使用UPDATE语句。 – 2012-03-10 17:20:51

+0

对不起,我的意思是显示结果 – 2012-03-10 17:22:40

+0

你收到了什么错误?你能发布预期的和实际的产出吗? – 2012-03-10 17:25:22

回答

23

我宁愿使用CASE

SELECT item_code, 
CASE category_code 
WHEN 'HERR1' THEN 1 
WHEN 'COLN5' THEN 2 
ELSE 'NO' 
END as category_code, item_name, item_quantity 
FROM qa_items 

IF也将工作:IF(category_code='HERR1',1, IF(category_code='COLN5',2,'NO'))

4

您需要嵌套的if语句

SELECT item_code, IF(category_code = 'HERR1', 'NO', IF(category_code = 'COLN5', 1, 2)) AS category_code, item_name, item_quantity FROM qa_items 

然后第一个,如果将失败,嵌套,如果将评估

4

这是你所追求的?

SELECT 
    item_code, 
    CASE category_code 
    WHEN 'HERR1' THEN 1 
    WHEN 'COLN5' THEN 2 
    ELSE 'NO' 
    END AS category_code, 
    item_name, 
    item_quantity 
FROM qa_items 
1

请尝试以下

SELECT item_code, CASE category_code WHEN 'HERR1' THEN 1 WHEN 'COLN5' THEN 0 ELSE 'NONE' END AS category_code, item_name, item_quantity FROM qa_items 
0

在我3列的表,一个是package_price,employee_percentage,reference_customer_id。

现在我想如果reference_customer_id> 0,那么雇员百分比作为referenced_commission,如果reference_customer_id = 0,那么直接佣金。我尝试以下方法:

SELECT如果(reference_customer_id = 0,和(((package_price employee_percentage)/ 100)),0)作为direct_commission,如果(reference_customer_id> 0,和(((package_price employee_percentage)/ 100 )),0)as reference_commission