2016-07-23 14 views
0

我想为了匹配一个SQL查询来获取不同的领域:腓的preg_match SQL UPDATE子句模式

update nabi set fjfhj where jjj; 
  • table需要 - 在这里彩蝶

  • columns需要 - 这里fjfhj

  • where可选 - 在这里JJJ

目前我有:

/^update\s+(?<table>[a-z_]+)\s+set(?<columns>.*?)(\s+where\s+(?<where>.*?))?;?$/si 

我的问题是,where子句可能为空!

但where子句不正确!这是一个online example

这是不可能的?

+0

什么是你试图找到这种模式?向我们展示一些样品并要求结果。 – zajonc

+0

不,现在还不清楚。你想匹配关键字和/或值?它是否设想匹配任何更新查询或只有一些特定的总是看起来相同?多个设定值/ wheres? (现在,这是非常有限的,因为你不匹配的数字,等号,后面的勾号,多列等)。 –

+0

好的。所以它应该是动态的。这超出了我的正则表达式技能。一个查询可能非常复杂(例如,引号中的引号被转义)。这不是一件容易的事。但为了将来的参考:*在你的问题更清楚你实际上正在努力完成什么,所以我们不浪费我们的时间回答错误的问题!* –

回答