如何编写SQL WHERE子句,筛选含'Very frequently'值的表记录?
筛选存在'Very frequently'值的SQL记录解法
针对你的需求,这里提供两种适合SQL新手的写法:
1. 直观的OR连接写法
这是最容易理解的方式,把每个音乐流派列的判断用OR串联,只要任意一个流派列的值为'Very frequently',这条记录就会被筛选出来:
SELECT * FROM genre_frequency WHERE classical = 'Very frequently' OR gospel = 'Very frequently' OR pop = 'Very frequently' OR kpop = 'Very frequently' OR country = 'Very frequently' OR folk = 'Very frequently' OR rock = 'Very frequently' OR metal = 'Very frequently' -- 把剩下的8个音乐流派列按同样格式补充进来
这种写法逻辑直白,你可以逐一核对每个流派列,不容易出错,适合新手验证结果。
2. 更简洁的IN/ANY写法
如果觉得写一堆OR太繁琐,不同数据库有简化写法:
- MySQL/MariaDB:用
IN关键字,把所有流派列放在括号内:
SELECT * FROM genre_frequency WHERE 'Very frequently' IN (classical, gospel, pop, kpop, country, folk, rock, metal, /* 补充剩余流派列 */)
- PostgreSQL:可以用
ANY结合数组:
SELECT * FROM genre_frequency WHERE 'Very frequently' = ANY(ARRAY[classical, gospel, pop, kpop, country, folk, rock, metal, /* 补充剩余流派列 */])
注意事项
无论用哪种方法,一定要确保把全部16个音乐流派列都包含进去,漏掉任何一列都会导致对应流派为'Very frequently'的记录被遗漏。
内容的提问来源于stack exchange,提问作者Ara
相关产品推荐
相关产品推荐

