SQLステートメント内に1つの文字列(「WHERE」)が存在するかどうかを確認するために、正規表現(経験がほとんどない)を作成しようとしていますが、括弧の間に存在しない場合に限ります。
私はPHPを使用しており、そのコードまたはヘルプをいただければ幸いです。
試したコードを投稿しますが、実際にはどこから始めればよいかわかりません。他の方法を使用して目的の効果を達成しようとしましたが、何らかの問題が発生し続けています。
一連の検索基準に基づいて SQL ステートメントを作成しようとしていますが、考えられる各検索フィールドで、where 比較の前に SQL ステートメントに「WHERE」または「&&」を配置するために天気を判断する必要があります。
しばらくの間 strstr を使用してこれを行いましたが、「WHERE」の使用を必要とする SQL の「SELECT」部分にサブクエリを追加する必要があったため、明らかに私の方法が台無しになりました。
どんなヒントも素晴らしいでしょう。
編集:
声明の冒頭:
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
}
これは明らかに1つの条件だけでは過剰ですが、私のスクリプトには多くの条件があり、最初の条件の後の条件では非常に必要になります.