【问题标题】:MySQL query help... checking true or false?MySQL查询帮助...检查真假?
【发布时间】:2013-02-20 06:56:51
【问题描述】:

好的,我有一张客户表

我想做的是如果客户的性别是男性,我想把他的名字和先生连接起来。否则如果是女性,应该和女士连接起来。我该怎么做?

【问题讨论】:

    标签: mysql sql boolean


    【解决方案1】:

    你可以使用inline IF声明,

    SELECT  IF(gender = 'Male', CONCAT('Mr. ', fname),CONCAT('Ms. ', fname)) Name
    FROM    customer
    

    你也可以使用其他RDBMS支持的CASE

    SELECT  CASE WHEN gender = 'Male'
                THEN CONCAT('Mr. ', fname)
                ELSE CONCAT('Ms. ', fname)
            END Name
    FROM    customer
    

    【讨论】:

      【解决方案2】:

      另一种方法

      SELECT CONCAT(CASE gender 
                      WHEN 'Male' THEN 'Mr. ' 
                      WHEN 'Female' THEN 'Ms. ' 
                    END,  `fname`,  ' ', `lname`) AS `name` 
        FROM customer
      

      sqlfiddle

      输出

      |           NAME |
      ------------------
      |   Mr. Jhon Doe |
      | Ms. Helen Ross |
      

      您可以使用CASE gender WHEN 'Male' THEN 'Mr. ' ELSE 'Ms. ',但问题是如果您的性别列可以为空,那么对于所有性别未知(或客户不想透露)的记录,您将获得 Ms.

      sqlfiddle 为那个

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-07
        • 2011-07-19
        • 2011-04-28
        • 1970-01-01
        • 1970-01-01
        • 2012-07-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多