gpt4 book ai didi

mysql - 动态字段的“where”语句

转载 作者:行者123 更新时间:2023-12-01 00:43:37 25 4
gpt4 key购买 nike

美好的一天!我遇到了一些 mysql 命令的问题。

按照我下面的例子,我想获取如下数据

SELECT c.*, SUBSTRING_INDEX(v1.c_value, ',', -1) AS e_status
FROM reg_emp AS c
LEFT JOIN default_values AS v1 ON c.emp_status = SUBSTRING_INDEX(v1.c_value, ',', 1) AND v1.category = 'emp_status'
where e_status = 'On Duty'

但这对我不起作用,即使使用 v1.e_status 或 c.e_status

请记住,我不想让它像where c.emp_status = '1'

请看SQLFiddle

希望你能理解我的问题。

谢谢,

问候,

萨米拉席尔瓦

最佳答案

在 SQL 语句中,SELECT 子句在 WHERE 子句之后计算。因此,您必须在 WHERE 子句中重复公式:

SELECT c.*, SUBSTRING_INDEX(v1.c_value, ',', -1) AS e_status
FROM reg_emp AS c
LEFT JOIN default_values AS v1 ON c.emp_status = SUBSTRING_INDEX(v1.c_value, ',', 1) AND v1.category = 'emp_status'
WHERE SUBSTRING_INDEX(v1.c_value, ',', -1) = 'On Duty'

操作顺序是

  1. 来自
  2. 哪里
  3. 分组依据
  4. 拥有
  5. 订购方式
  6. 选择

WHERE 子句中不能有别名。

关于mysql - 动态字段的“where”语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25871327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com