Re: せり科葉菜類

このトピックの投稿一覧へ

なし Re: せり科葉菜類

msg# 1.4.1
depth:
2
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2013.10.17 14:50 | 最終変更
OhYeah!  管理人   投稿数: 983 オンライン
引用:選択作物名で完全一致検索して、idSaku を取得しているため sakumotsu テーブルに存在しても、m_sakumotsu に存在しないため
検索できません。
idSaku は、m_sakumotsu ではなく、sakumotsu テーブルから取得する必要があります。

select if(level<4, substr(idSaku, 1,8), idSaku) as idSaku from sakumotsu where sakumotsu = 'せり科葉菜類'
この例では、level = 4 の時のみ 10 桁、0~3 は先頭8桁を取得しています。あとは、これで取得した ID を現行検索ルーチンに渡せば OK です。
DROP TABLE IF EXISTS ttTekiyoSaku;
CREATE TEMP TABLE ttTekiyoSaku AS SELECT * FROM tekiyo WHERE idSaku IN (SELECT idSaku FROM m_sakumotsu WHERE idSaku REGEXP '^(02991100)');
SELECT * FROM tvTsushoTekiyoSaku;


ちなみに、SELECT 文でテーブルを作成する場合、BEGIN/COMMIT は無くても時間は変わらないはずです。
あと、この方法の場合、現行検索ルーチンの「(○○を除く)」を削除する部分も不要ではないかと…。同じレベルの複数作物を選択した場合は、別途処理が必要になりますが、現行方式で意図通りに処理されます?
正規表現については、8桁でも 10 桁でも先頭一致の '^' を付けておいて良いと思います。ACFinder の中で、余計な処理をしなくてすみますし。
投票数:0 平均点:0.00

投稿ツリー

  条件検索へ