sql - SQL 输入值 单个或多个值
问题描述
在SQL
查询中,如果输入值为 0,则将输入作为列的所有值,否则仅考虑输入值;
假设如果输入city_num = 0
然后对所有城市编号运行查询,即 1 到 50,否则对输入运行查询city_num
说 5.. 如何编码?
if the City_num = 0 then Select * from emp where City_num in 1to 50
if the City_num = 5 then Select * from emp where City_num = 5
;
解决方案
添加此WHERE
语句:
WHERE city_num = ? OR 0 = ?
如果你通过0
了,那么它相当于:
WHERE city_num = 0 OR 0 = 0
并且因为0 = 0
总是TRUE
那么它将获取所有行。
如果你通过5
了,那么它相当于:
WHERE city_num = 5 OR 0 = 5
并且因为0 = 5
总是FALSE
那么它只会获取city_num = 5
.
推荐阅读
- ruby-on-rails - 使用 Devise 从 Turbolinks 升级到 Turbo 后,我得到“未定义的方法 `to_model' for true:TrueClass”
- datetime - 如何从飞镖中的周数和年份获取日期时间
- typescript - 未处理的承诺拒绝:错误:网络错误 + 需要周期
- android - 无法解析配置“:app:devDebugRuntimeClasspath”的所有依赖项。对存储库使用不安全的协议,没有
- python - TensorFlow方法中的Jupyter笔记本进度条问题
- sqlite - 加密整个数据库是否比只加密数据更安全?
- javascript - 如何获取地图中特定键的值?
- java - 为什么我们需要在 ViewHolder 构造函数中调用 super(view)?
- laravel - 在不以 JSON 格式保存数据的情况下以可重复方式加载数据的问题 Laravel-Backpack
- amazon-web-services - ETL Glue 增量或增量逻辑