2017-05-29 23 views
0

誰かがこの問題について私を助けてくれるのだろうかと思っていました。単純な更新ステートメントを構文解析します。

以下のように更新文を解析しようとしています。

Update tableA set 
column1 = NULL 
where column2 is NULL 

上記のSQL文を入力として指定します。 出力には以下が必要です。

  1. 私はテーブル名が必要です。この場合:TableA
  2. 私は更新されている列が必要です。この場合Column1
  3. 私は列が更新される値が必要です。この場合NULL
  4. 私は全体としてwhere条件が必要です。この場合のcolumn2はNULL

誰かが私を助けますか?前もって感謝します。

+0

? – nabuchodonossor

+1

"segregate"は、SQL文を記述するときに通常使用される動詞ではありません。 –

+0

更新ステートメントには何も問題はありません。私はどのような簡単な更新クエリが構成されているかを動的に見つけようとしています。私は意味がありますか? –

答えて

0

あなたの目標が文を解析するが、実装パーサーがない場合、私は既存のライブラリを見つけようとします。 node-sqlparser:SQLを解析するJavaScriptライブラリがあり

'use strict'; 
// npm install node-sqlparser 

let parser = require('node-sqlparser'); 
let tree =parser.parse(`Update tableA set 
column1 = NULL 
where column2 is NULL`); 

console.info(JSON.stringify(tree, null, 2)); 

結果:あなたの更新ステートメントと間違っているものを

{ 
    "type": "update", 
    "db": "", 
    "table": "tableA", 
    "set": [ 
    { 
     "column": "column1", 
     "value": { 
     "type": "null", 
     "value": null 
     } 
    } 
    ], 
    "where": { 
    "type": "binary_expr", 
    "operator": "IS", 
    "left": { 
     "type": "column_ref", 
     "table": "", 
     "column": "column2" 
    }, 
    "right": { 
     "type": "null", 
     "value": null 
    } 
    }, 
    "params": [] 
} 
関連する問題