MySQL 到 PostgreSQL 的转换

标签 mysql postgresql database

我在 MySQL 中编写了一个查询:-

SELECT * FROM `employees` WHERE ((first_name LIKE "s%"  OR middle_name LIKE "s%" OR last_name LIKE "s%")) ORDER BY first_name ASC;

我试图在 PostgreqSQL 中执行此查询,但它给出了一个错误,指出“s%”列不存在。

之后,我在 LIKE 语句中放置了单引号,而不是双引号。

SELECT * FROM `employees` WHERE ((first_name LIKE 's%'  OR middle_name LIKE 's%' OR last_name LIKE 's%')) ORDER BY first_name ASC;

现在 PostgreSQL 执行该查询但它返回一个空集。 我正在使用 postgreSQL 8.3

最佳答案

由于员工周围的无效反引号,第二个语句不会在 PostgreSQL 中运行 - 但也许这是一个复制和粘贴错误。

如果你真的删除了那些可怕的反引号(这在 MySQL 中甚至不是必需的)很可能第二条语句没有返回任何值,因为 PostgreSQL 中的字符串比较区分大小写并且你的列包含大写字母 S 而不是 s

尝试:

SELECT * 
FROM employees 
WHERE ((lower(first_name) LIKE 's%'  OR 
        lower(middle_name) LIKE 's%' OR 
        lower(last_name) LIKE 's%')) 
ORDER BY first_name ASC;

关于MySQL 到 PostgreSQL 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6482343/

相关文章:

mysql - 如何在Web应用程序中的消息中存储隐藏字段?

php - 为什么即使我传递了错误的用户名,mysqli_connect() 也返回 true?

sql - 如何在 SQL CREATE TABLE 中使用常量?

python - 使用SQLAlchemy在select语句中生成带有子查询作为列的sql

python - 如何通过 python 将 current_timestamp 插入 Postgres

sql - 使用 Sequel 更新后如何获取受影响的行数?

mysql - 使用大小写按计算列进行过滤和排序(未找到列)

MYSQL join子查询使用count(*)查找用户拥有的关系数

android - 如何在android中使用SQLite数据库从数据库中选择数据?

php - 如何在 php 中生成唯一随机数