在使用SQL查询的过程中,如下SQL
SELECT * FROM TB WHERE NAME LIKE 'ABC@%'
SELECT * FROM TB WHERE LEFT(NAME,3)='ABC
SELECT * FROM TB WHERE SUBSTRING(NAME,1,3)='ABC
上面三个SQL都应该是查询NAME前三位是ABC的结果,
前提是数据库是肯定有ABC打头的数据,什么情况下LIKE的写法出结果,LEFT和SUBSTRING查询结果为空呢?
------解决思路----------------------
数据确实是ABC,还是指代的?
------解决思路----------------------
不应该呀,这也太奇怪了吧
------解决思路----------------------
4 位的年 LEFT()、SUBSTRING() 的长度参数应该是 4 而不是 3!
SELECT * FROM TB WHERE NAME LIKE '2015%' -- 比较前4个字符,匹配
SELECT * FROM TB WHERE LEFT(NAME,3)='2015' -- 3个字符和4个字符比较,不匹配
SELECT * FROM TB WHERE SUBSTRING(NAME,1,3)='2015' -- 3个字符和4个字符比较,不匹配