我的客户端请求从使用MySQL更改为PostgreSQL。数据库迁移运行良好,我的代码使用DevArt dotConnect Universal。除了实际的SQL语句之外,事情看起来很好。
在我使用的C#代码中,
"SELECT * FROM users WHERE user_name LIKE '%abc%';"
并且它适用于MySQL,但是当它连接到PostgreSQL时,我必须更改要使用的SQL语句,
"SELECT * FROM public.\"users\" WHERE user_name LIKE '%abc%';"
,搜索到的文字区分大小写!
我如何,
(a)使搜索文本不敏感?
(b)避免在表名前加上[public。]并对表名加双引号?
我看到有人在这里发布了一些内容,Accessing a table without specifying the schema name 但我有120张桌子,这将是耗时的。有没有更快的方法来解决我上面描述的2个问题?
修改 哦,我意识到这两个陈述会产生相同的结果。
SELECT * FROM Public.user;
和
SELECT * FROM \"user\";
答案 0 :(得分:0)
(a)使搜索到的文本不区分大小写?
PostgreSQL中的ILIKE关键字提供不区分大小写的搜索
SELECT * FROM users WHERE user_name ILIKE '%abc%';
或
select * from words where LOWER(word) LIKE '%aba%'
注意:如果您的表名为Users
,请使用SELECT * FROM "Users"