mysql - 如何在sql where子句中实现 'if not-then'之类的东西

标签 mysql sql

<分区>

我遇到了一个sql问题。

我有一张表 Person

create table Person(id int primary key, name varchar(30), postal_code int, country varchar(20));

insert into Person values(1, 'Aagam Jain', 12345, 'India');
insert into Person values(2, 'Akshay Jain', 12346, 'India');
insert into Person values(3, 'Aman Jain', 12347, 'USA');
insert into Person values(4, 'Abhinav Jain', 12348, 'UK');
insert into Person values(5, 'Akki Jain', 12349, 'Germany');
insert into Person values(6, 'Amar Jain', 12348, 'UK');

SELECT * FROM Person;

enter image description here

这是具有表架构的虚拟数据,可帮助您快速回答。

我想要表格的所有记录,除了印度国家我只想用 pincode 12345 进行记录。

这是示例输出格式。

enter image description here

对于所有其他国家/地区,我想要所有记录,但对于印度,我只想要邮政编码为“12345”的记录;

提前致谢。

最佳答案

逻辑运算符 AND/OR 和括号 ( ) 的简单应用应该可以解决问题。尝试以下操作:

SELECT * FROM Person 
WHERE (country = 'India' and postal_code = '12345') 
OR country != 'India'

基于 @jarlh's comment ,更简洁的逻辑是:

SELECT * FROM Person 
WHERE country != 'India' OR postal_code = '12345'

关于mysql - 如何在sql where子句中实现 'if not-then'之类的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52480024/

相关文章:

mysql - 使用 Erlang Mysql 驱动程序(从/插入)表的正确方法

mysql - F3 (Fat Free Framework) DB\Cursor->paginate 行为怪异

php - 非常简单的 SQL 函数返回 bool 值 1 (true) 而不是资源

c# - 在 sqldatasource 中读取 sql 模式

sql - SQL Server 对 JSON 的支持是否可以替代 MongoDB 等 NoSql 解决方案?

sql - 如何在 DB2 (8.x) 中查找所有打开/事件连接

sql - PostgreSQL - "DISTINCT ON"和 "GROUP BY"语法

php - MySQL如何从年份(参数)、weekOfYear(参数)、时间(数据库)和dayofweek(数据库)创建时间戳?

PHP - 执行附加查询

mysql - 连接 Mysql Workbench Vagrant