Подтвердить что ты не робот

Разделите последние два символа столбца в MySQL

У меня есть столбец SQL, где записи являются строками. Мне нужно отобразить эти записи после обрезки последних двух символов, например, если запись 199902345 она должна вывести 1999023.

Я попытался заглянуть в TRIM, но похоже, что он предлагает обрезку, только если мы знаем, каковы последние два символа. Но в моем случае я не знаю, что это за последние два числа, и их просто нужно выбросить.

Итак, вкратце, какая строковая операция MySQL позволяет обрезать последние два символа строки?

Я должен добавить, что длина строки не является фиксированной. Это может быть 9 символов, 11 символов или что-то еще.

4b9b3361

Ответ 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

Ответ 4

Вы можете использовать LENGTH(that_string) минус number of characters, который вы хотите удалить в SUBSTRING(), выберите, возможно, или используйте функцию TRIM().