Ruby on Rails v3.2.2 と MySQL データベースを使用しています。次のようなデータを含むデータベーステーブルがあります(注:column1
コンマ区切りの文字列が含まれています):
id | column1 | column2 | columnM
-----|-----------------------------------------------------
1 | one1 | value1 | ...
2 | one1, two1 | value1 | ...
3 | one1, two1, three1 | value1 | ...
4 | one2 | value2 | ...
5 | one2, two2 | value2 | ...
6 | one2, two2, three2 | value2 | ...
... | ... | ... | ...
1000 | oneN | valueN | ...
1001 | oneN, twoN | valueN | ...
1002 | oneN, twoN, threeN | valueN | ...
1003 | oneN, twoN, threeN, fourN | valueN | ...
に存在する 1 つまたは複数の文字列と同時に始まるレコードを取得するために、SQL クエリを作成したいと思いますcolumn1
。つまり、たとえば、文字列column1
を検索するとします。
Case 1: "thr"
Case 2: "two1 thr"
Case 3: "two thr"
Case 4: "wo"
Case 5: "one"
Case 6: "four one"
id
次に、次のレコードをそれぞれ取得したいと思います。
Case 1: 3, 6, 1002, 1003 # returns all records starting with "thr"
Case 2: 3 # returns all records starting with "two1" and at the same time starting with "thr"
Case 3: 3, 6, 1002, 1003 # returns all records starting with "two" and at the same time starting with "thr"
Case 4: # nothing to return
Case 5: 1, 2, 3, 4, 5, 6, 1000, 1001, 1002, 1003 # returns all records starting with "one"
Case 6: 1003 # returns all records starting with "four" and at the same time starting with "one"
上記のように SQL クエリを動作させるにはどうすればよいですか(おそらく、ワイルドカードやその他の未知のものを使用することによって) 。「単純な」検索エンジンを実装しようとしていますが、何についてアドバイスをいただけますか? 何か処方箋はありますか?