在正则表达式上选择一行没有重复条目
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在正则表达式上选择一行没有重复条目相关的知识,希望对你有一定的参考价值。
我的信息表包含以下列:
id,评论,状态
我想从info中选择所有评论,并使用以下查询:
SELECT name FROM info WHERE status = 1 ORDER BY id
评论栏具有以下内容:
id 1:你好世界2010 身份2:你好世界2010 身份3:你好,我在2010年 id 4:你好2020 ...
我希望回显所有通过数字(正则表达式编号0-9 4位)过滤的条目而不重复。输出示例:id 1:2010 id 4:2020说:在“评论”列下,我们在不同的值中插入了超过100行。
答案
你真的需要一个基于正则表达式提取年份的函数,比如php的preg_match()
。 Michael Packer的回答是使用Oracle做到的。但是,MySQL lacks a built-in function for this;它的正则表达式函数只允许说出某些内容是否匹配,而不是提取匹配项。
根据您的数据格式,可能有一个更好的解决方案特定于您的用例。例如,如果年份包含列中的唯一数字,等等。
或者,您可以在PHP中进行处理。为了允许将来的查询执行此操作,您可以让PHP从文本中提取年份值并将其存储在单独的列中。 SELECT查询然后可以GROUP BY该列。
以上是关于在正则表达式上选择一行没有重复条目的主要内容,如果未能解决你的问题,请参考以下文章