没有指定表名和公用文件夹的mysql postgresql查询

时间:2015-01-20 10:51:24

标签: mysql postgresql

我的客户端请求从使用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\";

1 个答案:

答案 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"

> SQLFIDDLE DEMO