SELECT count(1) FROM media_info where media_id = '%'+'bb'+'%'
SELECT count(1) FROM media_info where media_id like CONCAT('%','bb','%')
今天在做统计的时候突然发现了这个问题。关于%拼接的问题。
数据库返回的数据条数竟然不一致。而且还惊奇的发现 第一条语句返回的结果中有些并不存在bb关键字,想问这种差异是怎么产生的,一般情况我们进行模糊查询时,用那种方式,谢谢了呢。
首先,('%'+'bb'+'%')没啥意义,其结果为0。它跟字符串做等于比较时,字符串media_id会强制转化为整数,除非这个字符串是'1',转化下来1才不等于0,否则media_id总会是转化为0,所以不能这么用。
你可以具体试试:
做模糊查询,只能用你列的第二种方式。