2015-01-18 2 views
0

В 3 поля ниже «Победа», «Buyin», «ChampFund» являются VARCHAR тип данных со значениями, которые включают в себя символ $ как $ 250,00Выполнение арифметических по столбцам VARCHAR

Пример результата я ищу:

'Выигрыши' - 'Buyin' - 'ChampFund' Как 'Net'
$ 250 - $ 45 - $ 5 = $ 200

Если бы они были INT тип данных я бы

Select *, Winnings - BuyIn - ChampFund As Net From gamedetail 

Любое предложение о том, как это сделать, будет оценено по достоинству.

ответ

1

Вы просто не должны хранить числовые данные в строковых столбцах. Это очень плохая идея.

Но вы можете легко делать то, что хотите, потому что MySQL будет преобразовывать строку в числа в числовом контексте. Что-то вроде:

select (replace(replace(Winnings, '$', ''), ',', '') - 
     replace(replace(BuyIn, '$', ''), ',', '') - 
     replace(replace(ChampFund, '$', ''), ',', '') 
     ) 

Я включил запятую в логике, потому что часто, когда символ валюты присутствует, так это тысячи-сепараторы. Кроме того, вы не должны указывать имена столбцов в одинарных кавычках, но это может быть только то, как вы задали вопрос.

+0

База данных уже существует и не разработана мной. Спасибо, я попробую. – bech64

Смежные вопросы