9

テーブルに列があり、100012345 などの値が含まれています。列は varchar です。ここで、これを同様の値と比較したいと思います。

... where myColumn > '100012345'

例えば。どうすればそれができますか?

ありがとう!

4

4 に答える 4

14
select * from your_table
where cast(your_column as signed) = 100012345
于 2012-10-05T15:20:27.200 に答える
4

次のように、通常どおりに実行しようとしましたか。

... where myColumn > 100012345

それはうまくいくはずです!、mysql は、数値操作のコンテキストにある場合、文字列を自動的に数値にキャストします。同様に、数値が文字列コンテキストで使用されている場合は、数値を文字列にキャストします。型変換ドキュメントの例を参照してください。

数値コンテキストで文字列を数値にキャストするには、通常、文字列値を数値として使用する以外に何もする必要はありません。

mysql> SELECT 1+'1';
       -> 2

算術演算で文字列を使用すると、式の評価中に浮動小数点数に変換されます。

文字列コンテキストで数値を使用すると、数値は自動的に文字列に変換されます。

mysql> SELECT CONCAT('hello you ',2);
        -> 'hello you 2'
于 2012-10-05T15:26:19.147 に答える
2

比較するために文字列を整数にキャストする必要はありません。mysql が自動的に行います。

http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html

于 2012-10-05T15:26:43.310 に答える
2

値を整数にキャストできます。

CAST(myColumn AS INTEGER)

于 2012-10-05T15:19:56.213 に答える