在alpha字符上匹配两个mysql cols(忽略同一字段中的数字)

时间:2010-05-18 08:58:49

标签: mysql

我想知道你是否知道我可以过滤一个mysql查询只显示特定字段中的'alpha'字符的方法

类似

SELECT col1, col2, **alpha_chars_only(col3)** FROM table 

我不打算只更新选择。

我一直在看一些正则表达式,但没有太多运气,大多数情况都是搜索只包含'alpha'chars的字段。

在一个充分淡化的背景下...... 我有col1,其中包含abc和col二包含abc123,我想只在alpha字符上匹配它们。可以有任意数量的字母或数字。

非常欢迎任何帮助

1 个答案:

答案 0 :(得分:0)

您可能需要为此编写自定义函数。如果你想在MySQL中这样做,你可以创建一个这样的存储函数:

DELIMITER $$

drop function if exists alpha_chars_only $$

create function alpha_chars_only (p_string text) returns text
begin
  declare v_return_val text default '';
  declare v_iter int unsigned default 1;
  declare v_length int unsigned default 0;
  declare v_char char(1) default null;

  set v_length = char_length(p_string);

  while (v_iter <= v_length)
  do
    set v_char = substring(p_string,v_iter,1);
    if (v_char REGEXP '[a-z]')
    then
      set v_return_val = concat(v_return_val,v_char);
    end if;
    set v_iter = v_iter + 1;
  end while;

  return v_return_val;
end $$

DELIMITER ;