得到前3个字母数字字符(只有数字或字母)
问题描述:
我有一个表,其中包含一个字段,title
,我需要得到每个title
的前3个字母数字字符。 title
的某些值有",',\t,\n,
或前置空格 - 应该忽略。得到前3个字母数字字符(只有数字或字母)
+--------+-----------------------------------------+---------------------+
| id | title | desired output |
+--------+-----------------------------------------+---------------------+
| 1 | "abcd" | abc |
| 2 | 'lostworld | los |
| 3 | \tsonof | son |
| 4 | 12amrt | 12a |
+--------+-----------------------------------------+---------------------+
desired output
是我正在寻找的输出。如果任何人都可以建议通用查询,可以处理所有情况都很好。
只使用MySQL寻找解决方案。
我不认为metalfight需要任何字符串替换 - 这个问题听起来像他们只是想输出(显示)前3个字母数字字符,而不是将它们保存回数据库。 – 2013-05-02 10:25:32
正确,但OP所需的列不存在。为了在现有列上使用正则表达式字符串替换创建动态列。 MySQL不支持直接替换正则表达式字符串。 – 2013-05-02 17:20:50
啊,是的,我明白你的意思了;内建函数[REGEXP](http://dev.mysql.com/doc/refman/5.1/en/regexp.html)只会告诉你是否存在匹配,但OP将需要找到匹配的子字符串。 – 2013-05-03 07:54:48