【问题标题】:mysql case statementmysql case语句
【发布时间】:2011-01-04 16:41:07
【问题描述】:

我可以在mysql case语句中使用'AND'吗

例如:

$d = $mysqli->query("SELECT id_timeslot, date_book, id_beautician

     ,coalesce(thera_b, 'available') AS thera_b

    FROM ( SELECT t.id_timeslot, p.id_beautician, b.date_book

    , MAX(CASE b.id_beautician WHEN 2 THEN 'booked' THEN 'booked' ELSE NULL END 
       AND 
       CASE b.date_book WHEN '2011-01-04' THEN 'booked' ELSE NULL END) AS thera_b

    FROM timeslot as t
    LEFT JOIN bookslot as b ON b.id_timeslot = t.id_timeslot
    LEFT JOIN beautician as p ON p.id_beautician = b.id_beautician
        GROUP BY t.id_timeslot) AS xx");

或任何其他解决方案?

【问题讨论】:

    标签: php mysql case


    【解决方案1】:

    这是你需要的吗?

    MAX(CASE WHEN b.id_beautician =2 
       AND b.date_book = '2011-01-04' THEN 'booked' END )  AS thera_b
    

    这使用searched 大小写格式(the docs 中的第二个)并省略了ELSE NULL,因为无论如何这是隐含的。

    【讨论】:

    • 你需要解释你想要做什么。提供没有解释就无法工作的源代码,让我们猜测您的意图可能不是最有效的方法!
    • MAX(当 b.id_beautician=2 AND b.date_book = '$search_date' THEN 'booked' END) AS thera_b
    • 对不起我的错!这是我之前的问题stackoverflow.com/questions/4512784/php-booking-timeslot
    • 至少对我没有帮助。您能否将示例数据和示例所需结果添加到您的问题中。
    • 它已排序 :) .. 我错过了代码中的逗号哈哈 .. :D 感谢 m8 ;)
    猜你喜欢
    • 2021-04-02
    • 2013-02-22
    • 1970-01-01
    • 1970-01-01
    • 2014-03-30
    • 1970-01-01
    • 1970-01-01
    • 2022-10-13
    • 2013-04-13
    相关资源
    最近更新 更多