972
社区成员




发现pgsql的一个bug?
like的后面
*等于 0或多个任意字符
_等于 1个任意字符
如:
【mydb=# select * from capitals where state like 'A_';
name | population | altitude | state | fid
------+------------+----------+-------+-----
cap1 | 1234 | 888 | AA | 3
cap2 | 1234 | 999 | AA | 5
(2 行记录)
mydb=# select * from capitals where state like 'A%';
name | population | altitude | state | fid
------+------------+----------+-------+-----
cap1 | 1234 | 888 | AA | 3
cap2 | 1234 | 999 | AA | 5
(2 行记录)
】
但是,对一个大表就遇到 异常 了:
【
mydb=# select fsn from tbpos where fsn like 'SN90055_' limit 5;
fsn
-----
(0 行记录)
mydb=# select length(fsn),fsn from tbpos where fsn like 'SN90055%' limit 5;
length | fsn
--------+------------
8 | SN900550
8 | SN900551
8 | SN900552
8 | SN900553
8 | SN900554
(5 行记录)
】
难道是bug?也太明显了。。。。
难道tbpos表的记录数多,就不一样了?
like 'xxx%'很快。like 'xxx_'比较慢