0

leadsサーバー全体で、特定の条件を使用して検証するテーブルを呼び出すクエリがいくつかあります。

SELECT * FROM leads WHERE user_id=3 //This line changes depending on the data needed
AND reversed!=1 AND amount>0 AND ip IS NOT NULL //These 'validation' statements are always there.

SELECT * FROM leads WHERE user_id=10 AND special_case=1
AND reversed!=1 AND amount>0 AND ip IS NOT NULL

SELECT * FROM leads WHERE user_id=15  AND special_case2=1 
AND reversed!=1 AND amount>0 AND ip IS NOT NULL

これらのクエリの 2 行目は、ほぼすべてのクエリに存在する検証句を表しています。問題は、別の検証ステートメント (のようなAND another_column=1) を追加する必要がある場合、コード内のすべてのクエリを個別に編集する必要があることです。これには時間がかかり、理想的ではありません。

すべてのクエリに適用できる検証関数を作成する最善の方法は何ですか? $_GLOBALlikeを作成できる$validation_sql='AND reversed!=1 AND amount>0 AND ip IS NOT NULL'と考えていましたが、カスタム MYSQL 関数を作成する方がうまくいくのではないかと思いました (これができれば)。

皆さんはどう思いますか?これを行う最善の方法は何ですか?

4

1 に答える 1

0

ビューを作成しますvalid_leads:

CREATE VIEW valid_leads AS
SELECT *
FROM leads
WHERE reversed!=1 AND amount>0 AND ip IS NOT NULL

次に、次のことができます。

SELECT *
FROM valid_leads
WHERE user_id = 15 AND special_case2 = 1
于 2013-04-11T22:46:43.057 に答える