318

の現在のデータ

SELECT PROD_CODE FROM `PRODUCT`

PROD_CODE
2
5
7
8
22
10
9
11

4 つのクエリをすべて試しましたが、どれも機能しません。(参照)

SELECT CAST(PROD_CODE) AS INT FROM PRODUCT;

SELECT CAST(PROD_CODE AS INT) FROM PRODUCT;

SELECT CAST(PROD_CODE) AS INTEGER FROM PRODUCT;

SELECT CAST(PROD_CODE AS INTEGER) FROM PRODUCT;

以下のようなすべてのスロー構文エラー:

SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルで、1 行目の ') AS INT FROM PRODUCT LIMIT 0, 30' 付近で使用する正しい構文を確認してください。

SQL 構文にエラーがあります。1 行目の 'INTEGER) FROM PRODUCT LIMIT 0, 30' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

MySQLでvarcharを整数にキャストする正しい構文は何ですか?

MySQL バージョン: 5.5.16

4

2 に答える 2

638

キャスト関数と演算子で説明されているように:

結果のタイプは、次のいずれかの値になります。

  • BINARY[(N)]
  • CHAR[(N)]
  • DATE
  • DATETIME
  • DECIMAL[(M[,D])]
  • SIGNED [INTEGER]
  • TIME
  • UNSIGNED [INTEGER]

したがって、次を使用する必要があります。

SELECT CAST(PROD_CODE AS UNSIGNED) FROM PRODUCT
于 2012-08-26T01:35:01.833 に答える
78

varchar フィールド/値を数値形式にキャストするには、少しハックを使用できます。

SELECT (`PROD_CODE` * 1) AS `PROD_CODE` FROM PRODUCT`
于 2016-03-01T19:00:37.750 に答える