欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

or的2句SQL的ike怎么按like的先后排列数据?

程序员文章站 2022-06-12 09:59:11
...
name LIKE "%A%" OR time LIKE "%b%"

怎么排完like A的结果 在排 B的结果?


回复讨论(解决方案)

...order by if(instr(name,'A') >0,1,0) desc

...order by if(instr(name,'A') >0,1,0) desc
大哥 有全句示例么?这么半句看不懂!

这个半句足够可以理解了
就是说按查找含有'A'的字符串转成0,1,然后根据01排序,含有的就是1,没有含有的就0
最后的排序就是order by if(instr(name,'A') >0,1,0) desc

这个半句足够可以理解了
就是说按查找含有'A'的字符串转成0,1,然后根据01排序,含有的就是1,没有含有的就0
最后的排序就是order by if(instr(name,'A') >0,1,0) desc

实际我要的排列结果是大概下面的语句,对2括号内的数据顺序排列 , 先排第一个括号内的,在排第2个括号内的。。。。

SELECT * from cs where (time like ""%a% or name like "%b%" or time like "%e%") or (time like ""%11% or name like "%22%" or time like "%33%")

一样的,用上面的那个语句一样的,结合一下啊,这都不明白么?
order by if(instr(name,'A') >0,1,(if(instr(name,'b') >0,1,(if(instr(name,'e') >0,1,0)))) desc