mysqlを使用して最後の5つの数字を取得する必要があります。
私の価値観はYOT-A78514
、LOP-C4521
..。
私は最後の5文字だけを取得する必要があります。クエリでこれを行うにはどうすればよいですか?
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
「正しい」関数はその方法です。部分文字列を使用すると、簡単には気付かない問題が発生する可能性があります。
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)
Right
良い選択ですが、このsubstring
ように使用することもできます-
SELECT Substring(columnname,-5) as value FROM table_name
SELECT row_id
FROM column_name
WHERE column_value LIKE '%12345';
「12345」が「column_name」内の「column_value」の末尾のサフィックスであることが判明した場合、これは「row_id」を返します。
文字の後に動的な数の正しい文字を取得する場合は、次のようにします。
SELECT TRIM(
RIGHT(
database.table.field,
(LENGTH(database.table.field) - LOCATE('-',database.table.field))
)
)
FROM database.table;