3

フィールドが単純な数式(私の場合は除算)に準拠しているすべての製品を選択する必要があります。

クエリの例:

SELECT * FROM cars WHERE (retail_price/invoice_price)>1.05

柔軟性が必要:
式を別の場所で文字列として定義し、WHERE句の後にSQLクエリでポップできるようにしたいので、ここで柔軟性が必要です。

$expression = "(retail_price/invoice_price)>1.05";
$query = "SELECT * FROM cars WHERE ".$expression." LIMIT 1";

注:
-retail_priceのデータ型はVARCHARです-invoice_priceのデータ型はVARCHARです-VARCHARが 金額に適しているかどうかはわかりませんが

助言がありますか?上記は私にはうまくいかなかったので。(ゼロの結果を返しました)

4

1 に答える 1

11

丸めの問題である可能性があります(@Justinが言ったように)。
これを試して:

SELECT * FROM cars WHERE (1.0 * retail_price / invoice_price) > 1.05

アイデアは、エンジンにフロートを管理させることです(フロート数1.0を掛けます)。

更新
データ型をVARCHARに編集したところです。
とにかく結果は(私にとっては)同じです:http ://sqlfiddle.com/#!2/298d3/2を見てください

于 2012-07-15T23:47:25.390 に答える