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

时间:2018-03-14 18:31:00

标签: php mysql sql phpmyadmin

我的信息表包含以下列:

id,comment,status

我想从信息中选择所有评论,并使用以下查询:

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 身份4:2020 说:在“评论”列下,我们在不同的值中插入了超过100行。

1 个答案:

答案 0 :(得分:1)

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

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

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