sql >> データベース >  >> RDS >> Mysql

MAX(Column)が間違った値を返します

    この状況は、invoice_number テキスト列として保存されます。例: varchar(10) 。その場合、アルファベット順に9が最大値になります。

    理想的には、数値演算を実行する値を数値データ型として格納する必要があります。 int 。ただし、何らかの理由で列のデータ型を変更できない場合は、MAXを適用する前に列をキャストしてみてください。 、そのように:

    select max (convert(invoice_number, signed integer)) as maxinv from invoice
    

    注:「数値演算を実行する値」について具体的に説明します。 入力テキストが電話番号やクレジットカード番号など完全に数値である場合もありますが、2つの電話番号を追加したり、クレジットカード番号の平方根を取得したりするシナリオはありません。このような値はテキストとして保存する必要があります。



    1. PHPを使用して複数のMySQLテーブルを作成する

    2. 続編:エラー:エラー:Table1はTable2に関連付けられていません

    3. mysqlの一意のインデックス付き列を更新します

    4. PHP/MySQLの単純な再帰ツリー