可能重复:
Simulating regex capture groups in mysql使用正则表达式在“标签”中提取MySQL数据?
好日子,
我存储在MySQL表多行数据。一个典型的价值可能是这个样子:
::image-gallery::
::gallery-entry::images/01.jpg::/gallery-entry::
::/image-gallery::
有没有一种方法 - 用正则表达式,我可以一)提取第一行术语图片库的方式(它可以是任何的短语,而不仅仅是图像库),然后提取中心线作为两个单独的值这样:
库条目,然后图像/ 01.JPG
可能有::库条目的许多线::值,它们也可以被称为任何东西。更完整的示例将是:
::image-gallery::
::title::MY GALLERY::/title::
::date::2011-05-20::/date::
::gallery-entry::images/01.jpg::/gallery-entry::
::/image-gallery::
在本质上我想这样的信息:在上述情况下,第一行和最后一行的内容类型(图像库)。然后我需要标题作为关键值样式对,所以标题作为关键字,我的相册作为值。然后,随后,我需要所有的字段行(gallery-entry)作为关键值对。
这是一个迁移脚本,其中旧系统的数据将以不同语法迁移到新系统。
如果MySQL select语句不起作用,用PHP脚本解析数据提取结果会更容易吗?
任何和所有的帮助总是赞赏。
亲切的问候, 西蒙
这些例子在表中代表单个行?我猜想一个仅用于sql的解决方案将很难实现。从快速查看MySQL中的正则表达式支持(http://dev.mysql.com/doc/refman/5.1/en/regexp.html#operator_regexp),我认为PHP或任何其他您喜欢的语言将是一种更简单的方法。 – 2011-05-20 12:00:24
你好,你可能需要对数据的可能结构更加具体:做标签自己包含多个结果集行('image-gallery')吗? – collapsar 2011-05-20 14:31:37
@paul W - 对不起,这样的延迟响应。但事实上,我最终用PHP的preg_match()函数进行了一些简单的模式匹配。感谢您的反馈。 – SimonDowdles 2011-07-07 14:15:57