2013-10-04 192 views
1

我想在一个查询中使用if,SUM和multiplication来查询和显示表的数据,或者我打算做的是;MySQL使用IF,SUM和乘法选择查询

Select column1, column2, column3, IF (column1='cr') THEN (column1='cr') * 8 + 
IF (column1='config') THEN (column1='config') * 6 + 
IF (column2='bs' AND column3='ft') THEN (column3='ft') * 4 + 
IF (column2='bs' AND column3='mj') THEN (column3='mj') * 2 + 
IF (column2='bs' AND column3='md') THEN (column3='md') * 5 + 
IF (column2='bs' AND column3='mi') THEN (column3='mi') * 3 + 
IF (column2='lf' AND column3='ft') THEN (column3='ft') * 2 + 
IF (column2='lf' AND column3='mj') THEN (column3='mj') * 1 FROM tbl_ut 

上面的查询是错误的,它只是为了显示我打算做什么。我需要帮助来纠正这个查询。 IF作为IF工作(条件,值如果为true,值如果为false)

还有哪些其他方法可用于更正此查询?

问候

+2

什么是你真正想乘,因为它看起来像你对我都试图通过一个数字乘以一个字符串,当然不会有任何效果 – cameronjonesweb

+0

这并不表示您的意图做得特别好。当条件成立时,你将'column3 ='ft''(一个条件)乘以4(一个数字),这是怎么做到的?或者你的意思只是'column3',在这种情况下,你就像user1672694所说的那样,试图将一个字符串和一个数字相乘。如果它是假的呢? – Dukeling

+0

正如我已经提到的查询是错误的,我打算做的是将具有指定值的列乘以数字。 – MOZ

回答

1
Select column1, column2, column3, 
     IF (column1='cr', column1 * 8, 0) + 
     IF (column1='config', column1 * 6, 0) + 
     IF (column2='bs' AND column3='ft', column3 * 4, 0) + 
     IF (column2='bs' AND column3='mj', column3 * 2, 0) + 
     IF (column2='bs' AND column3='md', column3 * 5, 0) + 
     IF (column2='bs' AND column3='mi', column3 * 3, 0) + 
     IF (column2='lf' AND column3='ft', column3 * 2, 0) + 
     IF (column2='lf' AND column3='mj', column3 * 1, 0) 
FROM tbl_ut