質問編集履歴

1

削除

2016/08/30 14:24

投稿

yanyi
yanyi

スコア24

test CHANGED
@@ -1 +1 @@
1
- javascriptの中alasqlの使い方に関す質問です。
1
+ 誤った投稿ため削除します。
test CHANGED
@@ -1,45 +1 @@
1
- 人員情報検索システムを製作していますが、一つ聞きたいことがありま
1
+ 誤った投稿であるため削除させていただきます。ご迷惑をかけて申し訳ありません
2
-
3
- 検索のロジックはこのような感じ。hpに入力されたワードをq1として捉え、jsでは
4
-
5
- if(q1){
6
-
7
- var result = [ ];
8
-
9
- result = alasql('SELECT * FROM men WHERE concat(name,grade,position) LIKE ?' , ['%'+q1+'%'])}
10
-
11
- else{result = alasql(''SELECT * FROM men',[ ])}
12
-
13
- これで普通に動くようになりましたが、先週からyahooのような「スペースキー間隔で複数のワードで検索する」システムを作りたいと思いまして、色々調べたり聞いたりして、少し進展があり、こうなりました。仮に2つのワードの場合は
14
-
15
- if(q1){
16
-
17
- var result = [ ];
18
-
19
- var re = /\s| /;
20
-
21
- var qarray = q1.split (re);
22
-
23
- if (qarray.length==1){result = alasql('SELECT * FROM men WHERE concat(name,grade,position) LIKE ?' , ['%'+qarray[0]+'%'])}
24
-
25
- if (qarray.length==2){なんやかんや}}
26
-
27
- else{result = alasql(''SELECT * FROM men',[ ])}
28
-
29
- で動くはず!と思って色々と「なんやかんや」の部分を試してもなかなか動かないです。
30
-
31
- 普通のsqlで言うと
32
-
33
- select * from men where (name||grade||position) like '%一つ目のワード%'
34
-
35
- or (name||grade||position) like '%二つ目のワード%'
36
-
37
- のようなものですが、これをalasqlのスタイルに書き換え、
38
-
39
- if (qarray.length==2){result = alasql('SELECT * FROM men WHERE concat(name,grade,position) LIKE ?
40
-
41
- or concat(name,grade,position) LIKE ?' , ['%'+qarray[0]+'%','%'+qarray[1]+'%'])}
42
-
43
- のようなものにしましたが、うまく機能しません。
44
-
45
- どうしたら良いでしょうか。よろしくお願いします。