セットアップMySQLの正規表現操作
「mytableは」と呼ばれるMySQLのテーブルにはVARCHARフィールド「データ」を持っています。
フィールドは、の形式の文字列が含まれています
name1'value1''name2'value2'' ... nameN''valueN
私は、このデータが非正規化されて承知している - これが唯一の文字であるため、私は区切りとして 'を使用することを余儀なくされてきたこと名前または値として許可されていません。ここで
は、いくつかの例のデータです:
one'.6332''two'.4231''three'.343''four'.034
two'.4332''four'.033''five'.043
four'.2323''seven'.3409''nine'.003
問題
私は名前/値のペアに基づいて "mytableは" から行を選択しようとしています。たとえば、データフィールド内の名前が「4」で、値が.1より小さいすべての行を選択したいとします。 (これは行1と2を返すはずです)。
私はこれをワンステップで行いたいと思います。私はデータを非正規化してこのようにするのは非常に簡単だが、私はそうしたくないと思います。この操作はたいてい500行でしか行われないので、私はそのパフォーマンスに非常に関心がありません。入力$名と$ valueに
、私は解決策は、次のようになりますと仮定します。
SELECT * FROM mytable WHERE
TO_INT(reg_ex(<crazyregex which selects $name>, data)) < $value
問題は、私はこれを行う方法の詳細を知らない、です。
誰かが助けることができます。ありがとう!
ありませんか? –