Mysql 对简单的select,where语句有问题

Mysql 对简单的select,where语句有问题,mysql,sql,select,where-clause,Mysql,Sql,Select,Where Clause,我是SQL新手,似乎无法在语句的一部分使用WHERE子句。例如,(基本上是书面的) 选择名字、姓氏、组织 从客户端表 选择续订日期和续订月份作为续订日期 从客户端表 续约日期0 我需要所有这些都是一个语句,但也要确保where子句不会影响名字、姓氏和组织字段。例如,该表将充满客户端,但“续订日期”列将仅显示具有一个客户端的客户端的日期。谢谢选择名字、姓氏、组织、如果(续订日期0、续订日期和续订月份“”)作为续订 SELECT Forename, Surname, Organisation, I

我是SQL新手,似乎无法在语句的一部分使用
WHERE
子句。例如,(基本上是书面的)

选择名字、姓氏、组织
从客户端表
选择续订日期和续订月份作为续订日期
从客户端表
续约日期0
我需要所有这些都是一个语句,但也要确保where子句不会影响名字、姓氏和组织字段。例如,该表将充满客户端,但“续订日期”列将仅显示具有一个客户端的客户端的日期。谢谢

选择名字、姓氏、组织、如果(续订日期0、续订日期和续订月份“”)作为续订
SELECT Forename, Surname, Organisation, IF(Renewal day <> 0, Renewal day AND Renewal month, '') as Renewal
FROM Client table
从客户端表
我们应该做到这一点。这不会直接运行,因为IF中的AND语句不受欢迎,不过您可以使用:

IF(Renewal day <> 0, CONCAT(Renewal day,Renewal month), '') as Renewal
IF(续约日0,CONCAT(续约日,续约月),“”)作为续约

IF(续订日0,续订日)作为续订日,IF(续订日0,续订月“”)作为续订月

有两个单独的字段。

最简单的方法是将续订日期存储为日期并允许为空,然后只需执行以下操作:

SELECT Forename, Surname, Organization, RenewalDate 
FROM Client

您能否提供一些示例数据以及您实际希望从查询中获得什么?它将包含所有客户数据(姓名、姓氏、组织),但如果您的列名称中有空格,则只包括有客户数据的更新日期,这只会造成麻烦,应该避免,你需要用背面记号把它们围起来<代码>选择“续订日期”…将续订日期/日期时间存储为单个列。我不需要where子句影响其他列
IF(Renewal day <> 0, Renewal day) as renewDay, IF(Renewal day <> 0, Renewal month, '') as renewMonth
SELECT Forename, Surname, Organization, RenewalDate 
FROM Client