55

mysqlを使用して最後の5つの数字を取得する必要があります。

私の価値観はYOT-A78514LOP-C4521..。

私は最後の5文字だけを取得する必要があります。クエリでこれを行うにはどうすればよいですか?

4

6 に答える 6

125

You can do this with RIGHT(str,len) function. Returns the rightmost len characters from the string str,

Like below:

SELECT RIGHT(columnname,5) as yourvalue FROM tablename
于 2012-04-13T02:46:14.787 に答える
16

「正しい」関数はその方法です。部分文字列を使用すると、簡単には気付かない問題が発生する可能性があります。

mysql> select right('hello', 6);
+-------------------+
| right('hello', 6) |
+-------------------+
| hello             |
+-------------------+
1 row in set (0.00 sec)

mysql> select substring('hello', -6);
+------------------------+
| substring('hello', -6) |
+------------------------+
|                        |
+------------------------+
1 row in set (0.00 sec)

ただし、文字列の先頭を越えようとしない場合は、もちろん部分文字列は正常に機能します。

mysql> select substring('hello', -5);
+------------------------+
| substring('hello', -5) |
+------------------------+
| hello                  |
+------------------------+
1 row in set (0.00 sec)
于 2014-01-11T15:20:44.277 に答える
7

Right良い選択ですが、このsubstringように使用することもできます-

SELECT Substring(columnname,-5) as value FROM table_name
于 2012-04-13T05:53:44.157 に答える
4
SELECT row_id
  FROM column_name
WHERE column_value LIKE '%12345';

「12345」が「column_name」内の「column_value」の末尾のサフィックスであることが判明した場合、これは「row_id」を返します。

于 2013-09-24T08:33:43.550 に答える
1

文字の後に動的な数の正しい文字を取得する場合は、次のようにします。

SELECT TRIM( 
    RIGHT(
        database.table.field, 
        (LENGTH(database.table.field) - LOCATE('-',database.table.field)) 
    )
)
FROM database.table;
于 2013-11-26T12:36:10.200 に答える