请问下sql全部查询的话 like ‘%’ 和like ‘%%’有啥区别呢?为什么一般用后者呢?

比如select * from table_name where column_name like '%%'和select * from table_name where column_name like '%'有什么区别?

个人没研究过这个,毕竟不是空的,都是直接用is not null
不过 like %% 显示的是所有不为空(null)的字段(不知道全部是空格能不能显示)
那么 like % 可能就在null这里可能会有些区别
建立一张表a,两个字段,一个是编码,一个是测试字段
1 a
2 aa
3 aaa
4 (四个空格)
5 (null) 也就是空
6 null(字符串null)
然后分别执行 子二个字段 like '%%' 和 like ‘%’的操作,就应该可以根据前面出现的数字,确定二者的区别,如果二者真的显示的结果一样,那么也就没区别了。如果显示的结果不一样,那么才能知道二者的区别。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-09-14
都是查询出全部,问题是like里面没东西为啥要写like?要么就是前台传过来的一个需要模糊查询的值,程序里面这样拼接的sql :"%" + str + "%",str是个空字符串,最后sql就成了“%%”啦~
第2个回答  2020-09-14
单个% 的 分左右
'XXX%' 匹配的是前面必须为XXX的数据,后面随意
'%XXX'匹配的是后面必须为XXX的数据,前面随意
'%XXX%'匹配的是所有含XXX的数据追问

我可能没有表述清楚,我想问的是比如select * from table_name where column_name like '%%'和select * from table_name where column_name like '%'有什么区别?

第3个回答  2020-09-14
SQL中like用法为模糊查询。即查询某个字段包含部分查询语句中的数据。
like'%'是实现左模糊或者右模糊查询。如like'xx%':是查询数据中该字段以xx开头的数据集。而like'%XX':是查询数据中该字段以XX结尾的数据集。
like'%x%'是同时实现左模糊和右模糊查询。即查询数据中只要该字段包含x就可以被该语句查询出。
关于为什么多数使用后者,是因为大多数情况下我们并不是特别想要只以某些开头和结尾的数据,只要包含某部分我们都想查出来。追问

我可能没有表述清楚,我想问的是比如select * from table_name where column_name like '%%'和select * from table_name where column_name like '%'有什么区别?