這裏的查詢MySQL查詢爲大於where子句
SELECT * FROM表WHERE ID = '7883c2c8e6' 和值> '45' DESC
但由於某些原因返回較小的值它返回一個字段值爲8的行。我已經檢查過,它沒有前面或後面的字符。該字段當前設置爲varchar。我想知道這是否會影響結果?
如果我改變>的方向爲<這一行不顯示,但它應該是另一種方式肯定?
這裏的查詢MySQL查詢爲大於where子句
SELECT * FROM表WHERE ID = '7883c2c8e6' 和值> '45' DESC
但由於某些原因返回較小的值它返回一個字段值爲8的行。我已經檢查過,它沒有前面或後面的字符。該字段當前設置爲varchar。我想知道這是否會影響結果?
如果我改變>的方向爲<這一行不顯示,但它應該是另一種方式肯定?
SELECT * FROM TABLE
WHERE id = '7883c2c8e6' AND (value * 1) > 45
order by value DESC
The field is currently set as varchar
這是個問題;如果在文本字段上使用比較運算符,它將按字母順序排序結果,而不是按數字排序。
爲了解決它,請將字段設置爲整數。
如果要按值排序,請將值設爲數值列,即INT或FLOAT或DECIMAL。現在它是一個'CHAR'(我假設)和'<'按字典順序進行比較。 – 2012-08-07 18:38:53