Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不指定表名和公用文件夹的mysql postgresql查询_Mysql_Postgresql - Fatal编程技术网

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

不指定表名和公用文件夹的mysql postgresql查询,mysql,postgresql,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_n

我的客户端请求从使用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.]并双引号引用表名

我看到有人在这里贴了些东西, 但是我有120张桌子,这会很费时。有没有更快的方法来解决上述两个问题

编辑: 哦,我意识到这两种说法产生了相同的结果

SELECT * FROM Public.user;

a是否使搜索的文本不区分大小写

PostgreSQL中的ILIKE关键字提供不区分大小写的搜索

从用户名为“%abc%”的用户中选择*

从像“%aba%”这样的较低单词中选择*

注意:如果表名为Users,则使用SELECT*FROM Users


好的,您不需要指定公共模式。如果表名不全是小写,并且没有空格或其他有趣的字符,则只需双引号引表名-尽管我不知道dotConnect是否如此。。。不区分大小写是易于使用的ILIKE。不需要用公共模式限定表名,除非你弄乱了默认的搜索路径。如果创建表时没有引用,也不需要引用表名。是的,在Postgrest中字符比较区分大小写谢谢你们。我注意到数据库中有些东西是他们以前的程序员做的。顺便说一句,她使用关键字作为列名,例如type。当然,我可以将其更改为fruit_类型,但我不仅必须更改所有120个表,还必须更改代码和Crystal Report。任何更快的方法?如果从Public.user中选择*;有效,然后从没有任何引号的用户中选择*也同样有效。您可以使用type作为表名,而无需在Postgres中引用它:谢谢大家,我会研究它。希望我能在周五之前收到一些东西。谢谢@wingedparter的快速回复。SQLFiddle演示很好,我将使用它。我还列出了另一个问题,即如何在不使用Public关键字的情况下进行选择,以及如何不双重引用表名?另外,你知道我在哪里可以找到PostreSQL 9.4和MySQL 5.6之间的SQL差异列表吗?我在使用PostgreSQL和VB.NET从未使用过公共关键字我想你不需要使用它??你没有试过吗?你是对的。现在它对我起作用了。是否有一个通用的查询语句可以与postgreSQL、MySQL、MSSQL一起使用?MySQL使用``,postgreSQL使用,MSSQL没有。@fuor:SQL标准要求使用带引号的标识符。SQL Server和MySQL都可以配置为符合关于引用标识符的标准。谢谢大家,我会研究一下。希望我能在星期五之前得到一些东西。
SELECT * FROM \"user\";