我有一个与MySQL中的字段匹配的字段,我以为我可以使用正则表达式,但是看来MysqL不具备执行此工作所需的功能.这是场景:
我在PHP中有一个名为$url的变量.假设此变量设置为字符串“ / article / my-article / page / 2”.我也有一个MysqL表中的URL,我想从中提取内容.但是,存储在我的表中的URL包含通配符.
以前,我已经进行了此设置,以便存储在表中的值看起来像这样:“ / article /%/ page /%”.
使用该配置,我可以运行:
SELECT * FROM urls WHERE '$url' LIKE url
并且这将匹配,这是所需的功能.
我现在想做的是允许使用更高级的通配符,这样我的MysqL数据可以不是“ / article /%/ page /%”,而是“ / article / {{slug}} / page / {{ page_no}}”.
我想使用相同的$url输入创建一个将与此数据匹配的SQL查询. LIKE不再是正确的比较,因为我没有使用内置的“%”通配符,而是使用{{.*}}.任何想法如何做到这一点?
解决方法:
有一个用户定义函数库,可在MysqL中为您提供preg_replace:
http://www.mysqludf.org/lib_mysqludf_preg/