2016-05-11 9 views
2

input_tablei「は入力」フィールドから「」文字を除去することにより、入力の合計を見つけることができますどのように</p> <p>にMySQLで文字列からそのような

username input 
A   A10 
B   A9 
C   A8 
D   A7 
E   A0 
F   A4 

を最初の文字を削除することで合計を見つける

+2

たぶん[SUBSTRING](http://dev.mysql.com/doc/refman/5.7/en/string-functions .html#function_substring)はあなたが探しているものです。 – apokryfos

答えて

8

以下のコード

select SUM(SUBSTRING(input, 2)) from input_table 
+0

最初に数字を投じる必要はありませんか? –

+0

@ダンブルクック、それもやり遂げることができます。しかし、数字を取得するために最初の文字だけを削除することが確実であれば、キャスティングは不要です – Arun

+0

Thanx @Arunが動作しています –

3

働くことができる、これを試してみてください。)

SQL Fiddle

のMySQL 5.6スキーマ

CREATE TABLE input_table 
    (`username` varchar(1), `input` varchar(3)) 
; 

INSERT INTO input_table 
    (`username`, `input`) 
VALUES 
    ('A', 'A10'), 
    ('B', 'A9'), 
    ('C', 'A8'), 
    ('D', 'A7'), 
    ('E', 'A0'), 
    ('F', 'A4') 
; 

クエリ1

select sum(replace(input, 'A', '')) from input_table 

Results

| sum(replace(input, 'A', '')) | 
|------------------------------| 
|       38 | 
+0

あなたの返信のためのThanx –

0

RIGHTを使用して右側の数値を取得し、CASTを取得してからSUMを探します。

クエリ

SELECT SUM(CAST(RIGHT(input, LENGTH(input) - 1) AS UNSIGNED)) AS `SUM` 
FROM input_table; 
+0

これはうまくいくが、それは他の2つの答えの単純さに欠けている。 –

+0

@DanBracuk:ちょっと別の見方です。 – Wanderer

0

もこれを試してみてください:

SELECT SUM(CAST(TRIM(LEADING 'A' FROM input)) AS UNSIGNED) AS total FROM table; 
関連する問題