在正则表达式上选择一行没有重复条目

问题描述 投票:-1回答:1

我的信息表包含以下列:

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 mysql sql phpmyadmin
1个回答
1
投票

你真的需要一个基于正则表达式提取年份的函数,比如PHP的preg_match()。 Michael Packer的回答是使用Oracle做到的。但是,MySQL lacks a built-in function for this;它的正则表达式函数只允许说出某些内容是否匹配,而不是提取匹配项。

根据您的数据格式,可能有一个更好的解决方案特定于您的用例。例如,如果年份包含列中的唯一数字,等等。

或者,您可以在PHP中进行处理。为了允许将来的查询执行此操作,您可以让PHP从文本中提取年份值并将其存储在单独的列中。 SELECT查询然后可以GROUP BY该列。

© www.soinside.com 2019 - 2024. All rights reserved.