• 请不要在回答技术问题时复制粘贴 AI 生成的内容
TomorJM
V2EX  ›  程序员

输入一段 mysql 的查询语句, 匹配出查询的字段和条件?

  •  
  •   TomorJM · Apr 5, 2018 · 2912 views
    This topic created in 3135 days ago, the information mentioned may be changed or developed.
    select salary from t_person where age=10
    

    匹配出: 要 select 的字段为: salary 条件(key:value): age:10

    实现思路我想到的只有正则匹配, 但是如何能覆盖所有情况呢?

    3 replies  •  2018-11-28 07:30:35 +08:00
    hotsun168
    hotsun168
    Apr 5, 2018 via iPhone❤️1
    1
    Druid 有个 sqlparser。可以完整解析 sql 语句。获取各个部分。
    ppyybb
    ppyybb
    Apr 6, 2018 via iPhone
    2
    手写一个 parser,维护性和扩展性都好得多。
    首先你要界定输入 sql 的范围,是不是所有标准的 sql 选项都要支持?然后写个递归下降的 parser 应该就可以解决了
    farseeraliens
    farseeraliens
    Nov 28, 2018 via iPhone
    3
    boost spirit qi
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1498 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 22:37 · PVG 06:37 · LAX 14:37 · JFK 17:37
    ♥ Do have faith in what you're doing.