我正在testing用于searchlogging的sql代码。 我有数据库A(我的家庭副本)和数据库B(一个站点的服务器,数据库是数据库A的绝对克隆)。 为了这个例子的目的,假设我有一个3列的表 –
假设你在表中有几个logging,在所有列中都包含“testing”,“testing”,“testing者”等字样。 现在,您需要select所有列中包含单词“test”的所有logging。 适当的SQL查询将是:
SELECT * FROM users WHERE username ILIKE $$%test%$$ OR firstname ILIKE $$%test%$$ OR lastname ILIKE $$%test%$$;
他的代码返回数据库A的正确数据,但它不会返回数据库B上的任何东西。副本是相同的 – 我已经倾销数据库A(我的本地机器)并将其导入到数据库B(服务器)。 只有我有权访问该服务器,所以没有人可以搞砸了事情。 另外,我试着丢弃数据库B和重新创build相同的导入只是为了确保和SQL查询后没有结果。
数据库A和数据库B的唯一区别是数据库A在32位机器上运行,而数据库B在64位机器上运行。 版本不同-db A运行8.3.5,db B运行9.0.2,configuration是安装PostgreSQL时默认的configuration。
这可以关联到32/64位操作系统? 是因为不同的版本,还是我需要启用的设置? 我99,999%肯定这是我正在执行的SQL是正确的,所以我已经排除了一个..
ILIKE取决于区域设置,因此您应该在两台机器上比较这些设置。 看看“22.1。区域支持” ,特别是在“22.1.3。问题”。