我的信息表包含以下列:
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行。
答案 0 :(得分:1)
你真的需要一个基于正则表达式提取年份的函数,比如PHP playsound
。 Michael Packer的回答是使用Oracle做到的。但是,MySQL lacks a built-in function for this;它的正则表达式函数只允许说 if 匹配,而不是提取匹配。
根据您的数据格式,可能有一个更好的解决方案特定于您的用例。例如,如果年份包含列中的唯一数字等,
或者,您可以在PHP中进行处理。为了允许将来的查询执行此操作,您可以让PHP从文本中提取年份值并将其存储在单独的列中。 SELECT查询然后可以GROUP BY该列。