mysql - 如何在sql where子句中实现'if not-then'之类的东西
问题描述
我遇到了一个关于 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;
这是带有表模式的虚拟数据将帮助您快速回答。
我想要除了 Country India 之外的所有表格记录,我只想使用 pincode 记录12345
。
这是示例输出格式。
对于所有其他国家/地区,我想要所有记录,但对于印度,我只想要邮政编码为“12345”的记录;
提前致谢。
解决方案
逻辑运算符AND
/OR
带括号的简单应用( )
应该可以解决问题。尝试以下操作:
SELECT * FROM Person
WHERE (country = 'India' and postal_code = '12345')
OR country != 'India'
根据@jarlh 的评论,更简洁的逻辑是:
SELECT * FROM Person
WHERE country != 'India' OR postal_code = '12345'
推荐阅读
- php - shopware Controller 未获取模板
- html - Angular Material:Stepper 向前移动,尽管需要选择
- plone - 多次通知自定义事件以发送电子邮件不起作用
- asp.net-mvc - 当我添加参数时,@Html.ActionLink 的 ASP.NET MVC 路由无法正常工作
- php - imap_body 工作不正确?
- spring - 启动 Spring Boot 应用程序的警告
- python - 基于系列的规则对 Pandas 数据框中的数据进行排序
- python - 嵌套循环和使用 iterrows 索引 pandas 数据帧
- python - Python utf8 编解码器无法解码位置 103 中的字节 0x80:无效的起始字节
- spring - 如何避免在 Spring jpa DATA 中创建依赖项目实体表?