У меня есть столбец, содержащий смесь букв и цифр. Мне нужно получить первый набор алфавитных символов из столбца. Как только целое число встречается, я не хочу больше .. например:Выписка Mysql только в алфавитном порядке
Возьмите 5 строк:
- S123J90
- SF91K88
- JK12K99
- X129PL9
- ABCD123
Мне нужны следующие данные из этих 5 рядов
- S
- SF
- JK
- X
- ABCD
Я нашел много разговоров о вложенных ЗАМЕНЫ запросов, но я уверен, что это лучший вариант там?
Примечание: Все строки начинаются с, по меньшей мере, одного алфавитного символом
Update: Я использовал модификацию этой функции http://www.rummandba.com/2011/02/mysql-function-to-remove-non.html следующий
DROP FUNCTION IF EXISTS remove_non_alpha_char_f //
CREATE FUNCTION remove_non_alpha_char_f (prm_strInput varchar(255))
RETURNS VARCHAR(255)
DETERMINISTIC
BEGIN
DECLARE i INT DEFAULT 1;
DECLARE v_char VARCHAR(1);
DECLARE v_parseStr VARCHAR(255) DEFAULT ' ';
WHILE (i <= LENGTH(prm_strInput)) DO
SET v_char = SUBSTR(prm_strInput,i,1);
IF v_char REGEXP '^[A-Za-z ]+$' THEN #alpha
SET v_parseStr = CONCAT(v_parseStr,v_char);
SET i = i + 1;
ELSE
SET i=256;
END IF;
END WHILE;
RETURN trim(v_parseStr);
END
Примечания: Я повторно закодирована функция для этого ответа, поэтому синтаксис может отсутствовать.
Вам нужен mysql, чтобы сделать это за вас? Это довольно просто сделать на любом языке программирования за пределами sql –
Я мог бы сделать это в коде приложения. У меня есть 29M строк, хотя .. Если бы я мог найти быстрый метод в MySql, я уверен, что он будет работать намного быстрее. – Niall
ifound ссылка, которую вы можете найти полезной http://forums.mysql.com/read.php?10,137433,137433 Видимо, ее не просто сделать, и это, конечно, не в моих силах. Лучше всего создать небольшой скрипт и другой столбец (или таблицу). Этот скрипт проходит через все записи один раз, а затем сохраняет извлеченные символы в этом новом столбце. Позже я попытался бы обновить этот столбец, изменив способ записи этих записей. –