(defn GetValuesFromWhereCommand
"return a list of values from Where command"
[Query tableName]
(let [values (re-seq #"[0-9a-zA-Z_=<>]+" ((re-find #"WHERE(.*)" Query) 1))
bitwise (re-find #"AND|OR" Query)
tempList (ref #{})
]
; first loop will look for the operators = < >
(doseq [item values]
(let [result (case (re-find #"[=><]" item)
"=" (GetRowsfromCondition tableName item = )
"<" (GetRowsfromCondition tableName item < )
">" (GetRowsfromCondition tableName item > )
nil (println "nothing")
)]
(when (not= nil result) (dosync (alter tempList conj result)) )
tempList)
)
(println tempList)
tempList) ; get the Where from Update ','
)
ここに私の出力があります。
#<Ref@5a4e229e: #{#<Ref@3fc2e163: #{0}> #<Ref@63280c85: #{0 1}>}>
#{0} を返す AND 演算と #{0 1} を返す OR 演算を実装したいと考えてい
ます。
私の問題は、作成したリストにアクセスする方法です。何らかの理由でユニオン/インターセクションを使用できませんでした。