sql中"select ...like '%%' "问题,高手请进!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql中"select ...like '%%' "问题,高手请进!!相关的知识,希望对你有一定的参考价值。

我看一份有意思的题目,问:
select * from table_name

select * from table_name where column_name like '%%'
有什么区别?
答案是后者搜索出来的内容"column_name"为非空.
我试着把该表里的记录删除,可是不行,必须原来就为"NULL"才管用,怎么办呢
"不行"就是说,原来记录为"NULL"时,"%%"搜索不出来,当我在"NULL"里添加任意数字再把全部数字清空,这时"%%"就能搜索出来了该行了.....这是为什么?
问题的关键在于"NULL"和"清空原始记录"的区别

select * from table_name
是查询出table_name 里所有的记录

select * from table_name where column_name like '%%'

是查询出table_name表里column_name 类似于'%%'的记录

由于%是代替所有,‘%%’代替所有,但并不表示代替空值,所以后一条记录和前一条的区别是,前一条是查询所有记录,后一条是查询column_name 值 不为空的所有记录。
参考技术A %是字符通配付,必须是字符。
select * from table_name 是查询整个表
select * from table_name where column_name like '%%' 查询这个字段 NOT IS NULL
参考技术B %可以代表任意字符,但必须是字符.
NULL表示没有都没有.
所以,select * from table_name where column_name like '%%'
选不出来column_name为NULL的记录.
删除记录直接用delete from table_name就可以,你说的不行是什么不行?

关于sql查询中的like用法疑问?

比如数据库中值name= “中国工商银行”,当用like查询时; sql = "select * from where webName like '%name%' 当webName 等于“中国工商银行上海支行" 查询结果返回空值,怎么办?

参考技术A 2种,明细你SQL有问题
sql
=
"select
*
from
where
webName
like
'%中国工商银行%'
“'
string
name
=
“中国工商银行”;
sql
=
"select
*
from
where
webName
like
'%‘"+name+"’%'
“;
你的写法转换成sql就是
找出webName
中的”name“这个名词
而不是”中国工商银行上海支行“

以上是关于sql中"select ...like '%%' "问题,高手请进!!的主要内容,如果未能解决你的问题,请参考以下文章

sql的like语句怎么用

MySQL查询like语句查询

string SQL="select * from where "+searchtype+" like '%"+searchkey+"%

sql语句中like的用法详细解析

请教sql语句中not like的用法

sql 包含于语法