我有一个名为“vCaption”的数据库字段名称,其中包含句子。 在那些句子中的某处,有些单词的开头带有# 符号。我需要那个句子的特定词。如果记录中不存在#符号词,则返回null。
例如,
“我的#childhood image from #1992 with my #Dad”
我的表中有以上记录。
我只需要下面这三个词。
童年,1992 年,爸爸。
我尝试了 REGEX 和其他 mysql 函数,但它没有得到我真正需要的东西。 请在这里帮助我。
SELECT vCaption FROM tbl_post WHERE vCaption REGEXP '(?<= #|^#)\S*'
我已经写了上面的查询。它返回错误
“#1139 - 从正则表达式中得到错误‘重复操作符操作数无效’”
最佳答案
要选择单词以 #
开头的行,您可以使用:
SELECT mycolumn FROM mytable WHERE mycolumn REGEXP "#[[:alnum:]]+";
但这只会选择您想要的行,而不是所有的单词。
你可以:
- 尝试使用MySQL string functions 转换
SELECT
中的mycolumn
删除不需要的词...坦率地说,不确定这是否可能。 - 用您的语言对选定的行进行后处理,以提取您想要的词。例如,在 PHP 中,
preg_match_all("~#[[:alnum:]]+~", $yourstring, $m)
会将所有#words 返回到$m[0]
关于mysql - 如何用mysql从数据库字段中获取#word?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24567509/