做SQL解析時遇到的問題

2022-01-26 07:58:24 字數 421 閱讀 5128

相對於算術表示式,json和xml等解析,sql就比較複雜了。

舉個例子來說:符號「(」是目前的sqlanalyzer1.00中作為進入遞迴的標誌之一,到「)」結束,中間是個查詢語句。如果測試用例也是這樣,自然沒有問題,但是,sql是靈活的...

首先,括號裡未必是子查詢,它可能是函式的一部分,比如count(*), 這時就得回退記號,然後按函式重讀;

其次,函式巢狀也常見,比如substr裡面有個length,這時候讀到第乙個「)」就認為結束是不合情理的;

其三,有時查詢不是非放到括號裡才能正常執行的。

不知oracle或是mysql的直譯器是怎麼做的,我目前能做到無函式有select/from/where/order by子句,多重子查詢的sql解析,總之我感覺要做出乙個完美普適的sql解析器還需要一些時日。

2023年5月28日

做HTML靜態頁面時遇到的問題總結

如果所示,問題 首頁 和 閒置 文字部分位於table中部 解決方法 需要取消vertical align middle屬性,將其設定為vertical align top,並將文字的高度改為整個table的高度 改正後最終的實現效果為 明顯可以看到 首頁 和 閒置 文字到了table頂部。2.pa...

做SlidingMenu遇到的問題

今天做專案用到了slidingmenu,正好有以前的demo,ok,copy,改,結果,問題來了,一直報空指標異常,查啊查,竟然是setmode 屬性中設定成了slidingmenu.left right,而這次只用到了left,引以為戒,引以為戒.slidingmenu簡介 slidingmenu...

npm run dev時遇到的問題

第一篇部落格 npm run dev時 19 verbose npm v6.14.4 20 error code elifecycle 21 error errno 1 22 error vue admin template 4.2 1 dev vue cli service serve 22 er...