php - SQL灵活查询结果
问题描述
我对 SQL 方面还是很陌生。我一直在试图弄清楚如何给你一个 in 标准,但让它决定查询是等于 1 个结果还是多个。我所拥有的如下。
我可能做错了,但我想我会问。
SELECT employee_name
, transaction_id
, department
, transaction_date
, transaction_day
FROM employee_transactions
WHERE transaction_date
BETWEEN '2018-08-20 07:14:35.000'
AND '2019-02-05 08:29:56.000'
AND CASE WHEN '$variable' = 'All'
THEN inc_day IN (
SELECT DISTINCT transaction_day
FROM employee_transactions
) ELSE inc_day in ('$variable')
END
我的意思是在列交易日有星期一、星期二、星期三等的条目,但所有条目都不在那里。因此,在之前的表格中,如果他们选择从所有日子中提取的所有内容,而不是仅选择一个,但是如果他们从星期一开始,则只需显示 monda
解决方案
您应该编写如下查询。
SELECT employee_name,
transaction_id,
department,
transaction_date,
transaction_day
FROM employee_transactions
WHERE transaction_date
BETWEEN '2018-08-20 07:14:35.000'
AND '2019-02-05 08:29:56.000'
AND ( '$variable' = 'All' OR inc_day = '$variable')
上面的查询将返回 $variable = 'ALL' 时的所有记录,否则只匹配记录。
假设 '$variable' 将在查询执行之前被替换。
推荐阅读
- docker - 无法在 http+docker://localhost 连接到 Docker 守护程序 - 它正在运行吗?(特殊用例)
- java - 确定输入是 Parquet 还是平面文件
- arrays - 无法使用 Flutter 向 Firebase Firestore 中的数组添加或删除对象
- webstorm - 如何在 JetBrains WebStorm 2020.3.2 的单独窗口中显示项目
- angular - 开发和生产的不同浏览器列表?
- java - While循环中的后递减操作
- kubernetes - 使用 kubectl 生成 yaml 输出会导致拆分行
- java - 如何从属性文件中获取数据库凭据?
- ssis - Cosmos db Table API SSIS 组件或 ODBC 连接器?
- python - 为正则表达式添加额外的命名组