MySQL больше чем равно, чтобы не проверять точность для Double

Я пытаюсь создать рекламную платформу для биткойн-крана и, следовательно, использую MySQL в качестве базы данных. Есть причина, по которой я упоминаю биткойн в своем вопросе, потому что я считаю, что моя проблема в некоторой степени связана с этим. Биткойн учитывает десятичные знаки до восьмого знака после запятой. Таким образом, платеж, поступающий от кого-либо, может составлять 0,01234567 BTC, чего обычно не бывает для обычной денежной транзакции. Теперь в своем заявлении на SQL я пытаюсь проверить, заплатил ли рекламодатель точную сумму за свое рекламное место, и тем самым обновить заказ, чтобы он был успешным. Ниже приводится заявление, которое я использую …

UPDATE  order_table
SET     status = 'success'
WHERE   orderid = $orderid
AND amount <= $amount

Поле количества было определено как ДВОЙНОЕ. Теперь, когда значение суммы составляет 0,01 BTC, заказ не должен быть успешным, когда сумма в долларах меньше, чем эта. Но когда пользователь платит 0,0099 BTC, он обновляется как успешный !!! Я прочитал следующее решение, но оно имеет дело с FLOAT …

MySQL "лучше чем" условие иногда возвращает строку с равным значением

Интересно, применима ли та же логика и к DOUBLE, и могу ли я слепо преобразовать тип данных DOUBLE в DECIMAL, чтобы избавиться от проблемы?

Редактировать: Спасибо за Лучший тип данных для хранения денежных значений в MySQL ссылка в комментарии. Интересно, смогу ли я использовать биткойн-сатоши для решения проблемы. В этом случае запрос будет следующим …

UPDATE  order_table
SET     status = 'success'
WHERE   orderid = $orderid
AND amount*100000000 <= $amount_in_satoshi

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector