收录日期:2021/02/27 02:54:34 时间:2016/05/20 23:10:45 标签:数据库(包含打印,安装,报表)
例如用户在一个文本框中输入

A & B !(C | D)

&代表AND,!代表NOT ,|代表OR

用什么样的算法可以把他转换为符合SQL查询规则的语句?并得到需要的关键字(就是用&或者用|连接的字符。

如果这样可以直接敲条件语句

如果你所说的可以用
replace(strsql,"&","and")
...
又学了一点东西,谢谢两位!!!!
没有这么简单吧,如果只是替换&的话根本就达不到效果。应该先分析其逻辑关系。我觉得可以用栈来实现,但是思路总是组织不起来。因为刚接触数据库,有些东西还不是很熟悉。请各位帮忙。
和表达式的解析差不多,要用堆栈实现(要确定运算符号的优先级别),在数据结构书上有例子
在弹出堆栈时在 转换成SQL的WHERE子句
用两个堆栈,一个存符号,一个存条件
to:WQ771211(SyanSea)

谢谢回复。

请问两个堆栈该如何交替使用?能详细说一下么?

你让用户输这种鬼东西,晕,你还不如要他直接查询。想办法想好点的吧。什么&!|最好不要让用户输入。改成象google里面的规则比较好。
呵呵,楼上的,当然不会让用户来输入这些鬼东西。我只是为了说明问题用这些鬼东西来表示。

windows 外壳 [抓狂中!!!]高分悬赏单选按钮的诡异问题!!!!! 弱问:J2EE从哪里开始? 一个Case when语句害我想了好久。 问大家两个XP的问题??谢谢 求一个带CASE的SQL自定义函数(50分) vb中打包报表不能打印执行的问题 看世界杯,对成名年轻球员的一些想法 一个关于TreeView的简单问题 有良好编程风格和习惯的人进来看一段代码!!!!! 寻高素质程序员一起创造未来 这样的SQL怎样写 老板拖欠工资怎么办 母版页可以动态切换吗? 公司装了卫星天线接收清华大学远程培训.领导交给一个任务,将即时播放的内容保存下来以便定期培训用,如何做呀? 求助?帮忙写个TCP/IP的全双工聊天程序 周二快过去了,散分 socket服务端有时在连上一定数量的客户端后别的客户端就连不上了,可能的原因有哪些? 我想去掉状态栏右边的把手。怎么作。 .net中SQL查询数据量过大,分批填充dataset问题,请教如何分批填充, Linux下,如何将一个timeval结构的变量转换成\"%Y-%m-%d-%H:%M:%S\"格式的字符串 求助:关于读取repeater里绑定的Label的值 请问哪里有什么好中文的卡拉OK软件下载呢? 修改注册表重启还原?? 怎么读出数据库图片? 关于A required resource was 的问题 程序人生,在这里发发骚。。。朋友们请进,给我提提见意!!! sql2000和sql2005已经可以共存,问题是? 关于XML读写 用什么作为数据库表主键比较好?