永发信息网

求解一个关于sql多个or查询

答案:1  悬赏:40  手机版
解决时间 2021-03-27 02:10
  • 提问者网友:夢醒日落
  • 2021-03-26 11:24
求解一个关于sql多个or查询
最佳答案
  • 五星知识达人网友:独钓一江月
  • 2021-03-26 12:58
你用or的话,所有的or都会出来。这个是一定的。
你的意思是如果你选择a,b为条件,那么就不管C,如果你选择A,C为条件那么就不管B,是这个意思吧。
那么你的选择来自什么地方,你怎么传递你的选择?
个人感觉你应该是从页面传过来把,按照现在的一般来说就是打勾。
那么好,我在这里加上一部分,
select * from dede_competition where (1=i and classify like '%$classify%') or (1=i and level like '%$level%') or (1=i and reward like '%$reward%') or (1=i and `ability` like '%$ability%') or (1=i and `DDL` like '%$ddl%') ORDER BY `signupTime` DESC
你打几个勾,那么几个i就等于1,不打勾就是0,这样的话,你只能用到1=1的那几个条件了,因为1=0恒不成立。
当然在页面拼语句也可以。追问i是哪里来的呢,我是用的ajax传递的追答我只会数据库,ajax我没弄过,不过我想你有一个选择的动作,总会有些改变吧,改变的无非就是变量或者碎片。
如果是变量,那么这个变量就是i(当然你可能需要5个变量,具体的可能要具体分析才行)
如果是碎片化的,也就是选择一个就是选择了一部分,然后再去拼接语句。这样的话,语句不可能是固定的,你怎么能写出这样的语句来呢?追问
我是按照这样的,但是传的变量是后面的那个$xx,

追答对啊,想办法把这个变量用到sql中,不就行了,你不传的也会有一个值,传的肯定是另外一个值,想办法把这个用到sql中不就可以了,不一定是1和0,也可以是其他的。
页面传参数这块,你更行家,我只是猜测是这样的,既然真是这样的,那么就想办法利用这个参数啊,方法大概就是我写的那个,具体的写法只能你自己试验,我只能是提供一个大概的思考方向。追问谢谢你。我把那个参数装在了一个数组里面,然后再循环把这个数组的值放到sql里面去。然后就哦了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯