Разделите последние два символа столбца в MySQL
У меня есть столбец SQL, где записи являются строками. Мне нужно отобразить эти записи после обрезки последних двух символов, например, если запись 199902345
она должна вывести 1999023
.
Я попытался заглянуть в TRIM, но похоже, что он предлагает обрезку, только если мы знаем, каковы последние два символа. Но в моем случае я не знаю, что это за последние два числа, и их просто нужно выбросить.
Итак, вкратце, какая строковая операция MySQL позволяет обрезать последние два символа строки?
Я должен добавить, что длина строки не является фиксированной. Это может быть 9 символов, 11 символов или что-то еще.
Ответы
Ответ 1
Чтобы выбрать все символы, кроме последних n, из строки (или, другими словами, удалить последние n символов из строки); используйте функции SUBSTRING
и CHAR_LENGTH
вместе:
SELECT col
, /* ANSI Syntax */ SUBSTRING(col FROM 1 FOR CHAR_LENGTH(col) - 2) AS col_trimmed
, /* MySQL Syntax */ SUBSTRING(col, 1, CHAR_LENGTH(col) - 2) AS col_trimmed
FROM tbl
Чтобы удалить конкретную подстроку из конца строки, используйте функцию TRIM
:
SELECT col
, TRIM(TRAILING '.php' FROM col)
-- index.php becomes index
-- index.txt remains index.txt
Ответ 2
Почему бы не использовать функцию LEFT (строка, длина) вместо подстроки.
LEFT(col,length(col)-2)
вы можете посетить https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_left, чтобы узнать больше о строковых функциях Mysql.
Ответ 3
подстроку().
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html
Ответ 4
Вы можете использовать LENGTH(that_string)
минус number of characters
, который вы хотите удалить в SUBSTRING()
, выберите, возможно, или используйте функцию TRIM()
.