私はいくつかのレポートに取り組んでおり、選択した日付に応じて異なるクエリを選択するクエリを作成しようとしています。これは、私が達成しようとしていることの単純化されたバージョンです。
SELECT *
FROM
IF(YEAR('###date start###'=2011),table_2011,table)
WHERE
date_start BETWEEN '###date start###' AND '###date end###'
###date start###
および###date end###
は、ユーザーが入力したパラメーターです。
これは単なる例であり、別のテーブルを選択する他のパラメーターが渡される可能性があるため、言語を使用して日付に応じて別のテーブルを選択することはできません。
新しいpreg_replaceを作成し、クエリを作成する人に次のようなものを追加するように強制する必要があると考えています###if(test,val2,val2)###
が、mysqlがすでにこれを実行できる場合は、お湯を再発明したくありません。
ありがとうございました
編集
より良い解決策を待っている間、私は「検索置換」機能を単純なものから変更しました:
###search###
=> value
(### search ###が手動で入力するフィールドとしてエンドユーザーに表示されていた)、新しいものも受け入れるように次のようにフォーマットされたフィールド
LLLlabel[option:value,option:value,option:value,....]LLL
このソリューションはエンドユーザーが追加のパラメーターを選択しなければならないのは煩わしいだけなので、MySQLだけでそれを実行できればと思うので、最善のソリューションではありません。
質問はクエリの非常に単純化されたバージョンにすぎないことに注意してください。クエリはサブクエリ、ユニオン、または結合の一部であり、time
分離だけではありません。