Mysqlを使用して最後の5つの数値を取得する必要があります。
私の値はYOT-A78514
、LOP-C4521
...
最後の5文字を取得するだけです。クエリでこれを行うにはどうすればよいですか?
RIGHT(str、len) 関数でこれを行うことができます。文字列strから右端len文字を返します。
以下のように:
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;