我正在尝试制定正则表达式(我对此几乎没有经验)来检查 sql 语句中是否存在一个字符串(“WHERE”),但前提是它不存在于括号之间。
我正在使用 PHP,并会感谢代码或帮助。
我会发布我尝试过的代码,但实际上甚至不知道从哪里开始。我试图使用其他方法来达到预期的效果,但一直遇到一个或另一个问题。
我正在尝试基于一堆搜索条件构建一个 SQL 语句,并且在每个可能的搜索字段中,我需要确定天气以在 where 比较之前的 sql 语句中放置“WHERE”或“&&”。
我通过使用 strstr 一段时间来做到这一点,但随后不得不向 sql 的“SELECT”部分添加一个子查询,这需要使用“WHERE”,所以这显然搞砸了我的方法。
任何提示都会很棒。
编辑:
声明的开头:
SELECT `t1`.*, (SELECT COUNT(`eta`.`time_away`) FROM `table2` WHERE `table2`.`field` = '1') as `time_away`
FROM `table1` `t1`
LEFT JOIN `table3` `t3` ON `t1`.`id` = `t3`.`t3id`
然后我有各种条件可以添加 WHERE 语句,例如:
if ($this === true) {
### CHECK HERE TO SEE IF WHERE EXISTS, BUT NOT THE WHERE WITHIN THE SUBQUERY
if ($sql does not contain WHERE outside of subqueries) {
$sql .= " WHERE ";
} else {
$sql .= " && ";
}
$sql .= ""; // add my condition here
}
这显然对于一个条件来说是多余的,但是我的脚本会有很多,并且在第一个条件之后的那些中,这将是非常必要的。